全局获取python类变量
此打印正在打印第一个名称值。调用全局获取python类变量,python,Python,此打印正在打印第一个名称值。调用ajust后,如何让它打印值?我要打印250张,不是200张。我已经找遍了stackoverflow,想找到一个解决办法。请记住,这不是我的实际代码,只是一个展示我的问题的简单示例。您需要先调用ajust() Class Information: def __init__(self): self.name = 200 def ajust(self): self.name = 250 Class Jesus: def
ajust
后,如何让它打印值?我要打印250张,不是200张。我已经找遍了stackoverflow,想找到一个解决办法。请记住,这不是我的实际代码,只是一个展示我的问题的简单示例。您需要先调用ajust()
Class Information:
def __init__(self):
self.name = 200
def ajust(self):
self.name = 250
Class Jesus:
def __init__(self):
self.age = 10
def ajust(self):
self.age = 20
Printdata = Information()
print(Printdata.name)
________________________
Result: >>> 200
但是,一旦您将其命名为name
将始终为250,我建议您使用property
来允许更多更改
Printdata = Information()
Printdata.ajust()
print(Printdata.name)
让我们来看看幕后发生了什么。 您的类信息有一个构造函数(在python中,这些构造函数由方法uuu init_uuuu(self)定义) 调用Information()时,实际上是在调用构造函数,它返回对象的一个实例,在本例中是一个Information对象,它还将name设置为200 所以,当您在新构建的信息上打印名称时,名称将为200 您有一个ajust方法,但需要调用它才能更新类中的name变量
因此,事件的顺序应该是:构建类、调用一个按钮、打印名称您必须调用
.adjust()
方法来更新值名称
信息()
将导致为新实例self
调用信息的\uuuuu init\uuuuu
。ajust
中的代码在调用之前无效
class Information:
def __init__(self):
self.__name = 200
@property
def name(self):
return self.__name
@name.setter
def name(self, value):
self.__name = value
information = Information()
print(information.name) # 200
information.name = 250
print(information.name) # 250