python实例属性的查找顺序
查找顺序
1、实例使用.来访问属性,会先找到自己的__dict__。
2、如果没有,然后通过属性__class__找到自己的类,再去类的__dict__中找。
注意,如果实例使用__dict__[变量名]访问变量,将不会按照上面的查找变量了,这是指明使用字典的key查找,不是属性查找。一般来说,类变量使用全大写来命名。
实例
classMyclass: """Myclass""" heighe=180 age=18 def__init__(self,name,age=20): self.name=name self.age=age jerry=Myclass("jerry",20) tom=Myclass("tom") #Myclass.age=50 print(Myclass.age,tom.age,jerry.age)#502020 print(Myclass.heighe,tom.heighe,jerry.heighe)#180180180 #jerry.heighe=170 print(Myclass.heighe,tom.heighe,jerry.heighe)#180180170 #tom.heighe+=10 print(Myclass.heighe,tom.heighe,jerry.heighe)#180190180 #Myclass.heighe+=20 print(Myclass.heighe,tom.heighe,jerry.heighe)#200200200 Myclass.weight=90 print(Myclass.weight,tom.weight,jerry.weight)#909090 print(Myclass.__dict__["age"])#18 print(jerry.__dict__["age"])#20 print(tom.__dict__["heighe"])#KeyError:'heighe' print(Myclass.__dict__["weight"])#90
以上就是python实例属性的查找顺序,希望对大家有所帮助。更多python学习指路:python基础教程
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。