class Door():
"门的类"
address = "浙江省杭州市"
def __init__(self,size,color,type):#构造函数
"初始化门的数据"
self.size = size
self.color = color
self.type = type
def open(self):
"门打开的方法"
print("这个%s门打开了" %self.type)
def off(self):
"门关闭的方法"
print("这个%s门关闭了" %self.type)
door1 = Door(16, ‘red‘, ‘木门‘) # 门的实例化1,实例名命名规范首字母小写
print(door1.__dict__) #对象的属性字典
#对象的数据属性访问
#方法1.使用实例名+点
print(door1.size)
#方法2.使用实例字典的性质进行访问
print(door1.__dict__[‘color‘])
2.2数据属性的范围
风湿理论在实例过程的中应用,如下图所示:
从上图可以发现,在查找实例的数据属性的过程是:首先查找实例的属性字典(也就是类中的init构造函数,将其存进属性字典中),如果类的属性字典中没有,则去构造函数inti的上一层(也就是类下的第一层中查找)也就是类的属性字典中查找,如果还没有该属性,则报错,不再望类之后查找。这与函数变量作用域的LEGB原则有所区别。
2.3实例的属性
我们从实例的属性字典中可以发现,实例的属性字典中并没有函数属性,所以根据风湿理论,此时会去类的属性字典中查找。如下图所示:
原文地址:http://blog.51cto.com/10836356/2108782