python培训之实例属性的查找顺序

发布时间:2023-02-27 09:32:47 人气:95 作者:多测师

  python实例属性的查找顺序

  查找顺序

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

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

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

python培训之实例属性的查找顺序

  实例

  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实例属性的查找顺序,希望对大家有所帮助。更多Python学习指路:请关注多测师。https://www.e70w.com/xwzx/




返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线