龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php Python描述符

时间:2014-07-17 15:56来源:网络整理 作者:网络 点击:
分享到:
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
精彩图集

赞助商链接