美文网首页
python(Class6)

python(Class6)

作者: OldSix1987 | 来源:发表于2016-09-11 10:42 被阅读10次

使用描述符对实例属性做类型检查


__get__, __set__, __delete__


# 含有以下方法中的一个的类叫做描述符
class Attr(object):
    def __init__(self, name, type_):
        self.name = name
        self.type_ = type_

    def __get__(self, instance, owner):
        return instance.__dict__[self.name]

    def __set__(self, instance, value):
        if not isinstance(value, self.type_):
            raise TypeError('expected an %s' % self.type_)
        instance.__dict__[self.name] = value

    def __delete__(self, instance):
        del instance.__dict__[self.name]


class Person(object):
    name = Attr('name', str)
    age = Attr('age', int)
    height = Attr('height', float)

p1 = Person()
p1.name = 'Bob'
print(p1.name)
p1.age = 17
print(p1.age)

相关文章

  • python(Class6)

    使用描述符对实例属性做类型检查 __get__, __set__, __delete__

  • GeekBand class6

    1.alloc gcc采用这种办法分配内存,省去了无用的开支。 2.迭代器 迭代器提供对一个容器中的对象的访问方法...

  • 2017泰营听录~class6

    2017泰国静修营——道次第28—Class6 0:00:00-0:12:46 休息时间 好了,我们要开始了。来自...

  • 2020-3-25

    1.阿里云7天打卡,class6 Java算法太难了(我根本就没学过) 2.老外想让跟我exchange pict...

  • 泰国静修营CLASS6

    我很多年没有看医生了,最近找了一个很好的医生,西方和自然疗法都很懂,看了一年多了。最近她说不想做医生了:因为她的先...

  • Class6 directive自定义指令

    Directive对元素标签进行自定义指令封装 自定义指令定义 1.自定义集合关键字directives,可定义多...

  • 👂🏻#耳朵人#观察与创作Class6👀10.27

    2017下学期。耳朵人第六节课预告! 1小朋友你见过蜘蛛吗?蜘蛛带给你什么样的感受?那么蜘蛛侠呢?你喜欢蜘蛛侠吗?...

  • 文章不再同步这里,请关注微信公众号【Python猫】

    Python猫Python猫Python猫 Python猫 Python猫 Python猫

  • 人工智能学习线路图

    Python教程 Python 教程Python 简介Python 环境搭建Python 中文编码Python 基...

  • 基础知识

    python 了解Python Python的应用领域 Python的版本 Python介绍 Python是时下最...

网友评论

      本文标题:python(Class6)

      本文链接:https://www.haomeiwen.com/subject/jrjuettx.html