python实例属性的查找顺序

美女程序员鼓励师

查找顺序

1、实例使用.来访问属性,会先找到自己的__dict__。

2、如果没有,然后通过属性__class__找到自己的类,再去类的__dict__中找。

注意,如果实例使用__dict__[变量名]访问变量,将不会按照上面的查找变量了,这是指明使用字典的key查找,不是属性查找。一般来说,类变量使用全大写来命名。

实例

class Myclass:

    """My class """

    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)  # 50 20 20

 

print(Myclass.heighe,tom.heighe,jerry.heighe)   #   180 180 180

#jerry.heighe = 170

print(Myclass.heighe,tom.heighe,jerry.heighe)   #   180 180 170

 

#tom.heighe +=10

print(Myclass.heighe,tom.heighe,jerry.heighe)   #   180 190 180

 

#Myclass.heighe += 20

print(Myclass.heighe,tom.heighe,jerry.heighe)   #   200 200 200

 

Myclass.weight = 90

print(Myclass.weight,tom.weight,jerry.weight)  #    90 90 90

 

print(Myclass.__dict__["age"])  #   18

print(jerry.__dict__["age"])    #   20

print(tom.__dict__["heighe"])   #   KeyError: 'heighe'

print(Myclass.__dict__["weight"])   #   90

以上就是python实例" title="python实例">python实例属性的查找顺序,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

以上是 python实例属性的查找顺序 的全部内容, 来源链接: utcz.com/z/544708.html

回到顶部