首页 > 编程语言 > 详细

python 学习笔记7(类/对象的属性)

时间:2016-05-07 16:35:47      阅读:244      评论:0      收藏:0      [点我收藏+]

27. 属性的__dict__系统

1)对象的属性可能来自:

  • 其类的定义,叫做类属性
  • 继承父类的定义
  • 该对象实例定义(初始化对象时赋值),叫做对象属性

2)对象的属性存储在对象的 __dict__ 属性中:

  • __dict__ 为字典,键为属性名,值是属性本身。

例子:

class bird(object):
    feather = True         # 父类

class chicken(bird):
    fly = False
    def __init__(self, age):
        self.age = age     # 子类

summer = chicken(2)        # 子类的对象

print(bird.__dict__)       # 父类属性
{‘__dict__‘: <attribute ‘__dict__‘ of ‘bird‘ objects>,   ‘__module__‘: ‘__main__‘,   ‘__weakref__‘: <attribute ‘__weakref__‘ of ‘bird‘ objects>,   feather: True, ‘__doc__‘: None}
print(chicken.__dict__)    # 子类属性
{‘fly‘: False, ‘__module__‘: ‘__main__‘, ‘__doc__‘: None, ‘__init__‘: <function __init__ at 0x2b91db476d70>}
print(summer.__dict__)     #对象属性
{‘age‘: 2}

3)属性是分层定义的:

比如上面分为 object / bird / chicken / summer这四层。

当我们需要调用某个属性的时候,Python会一层层向上遍历,直到找到最近那个属性。

__class__ 和 __base__

__class__属性可以帮对象查询它的类;

__base__属性可以帮子类查询它的父类

4)修改/引用对象的属性

下面两重方式互相等价:

summer.__dict__[‘age‘] = 3       print(summer.__dict__[‘age‘])
summer.age = 3                   print(summer.age)

28. 

 

python 学习笔记7(类/对象的属性)

原文:http://www.cnblogs.com/skyEva/p/5468506.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!