php Python描述符
Python描述符 [代码片段(27行)]
class Descriptor: def __init__(self, name, type, default=None): self.name = "_" + name self.type = type self.default = default if default else type() def __get__(self, instance, cls): return getattr(instance, self.name, self.default) def __set__(self, instance, value): if not isinstance(value, self.type): raise TypeError("Must be a %s" % self.type) setattr(instance, self.name, value) def __delete__(self, instance): raise AttributeError("Can't delete attribute") class Foo: name = Descriptor("name", str) num = Descriptor("num", int, 42) f = Foo() a = f.name f.name = "Guido" del f.name # Raise AttributeError //该片段来自于http://outofmemory.cn
精彩图集
精彩文章