全局获取 python 类变量


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

此打印正在打印出名字值。 如何让它在调用ajust后打印值? 我希望它打印 250,而不是 200。 我已经在StackOverflow上寻找解决方案。请记住,这不是我的实际代码,只是一个展示我的问题的简单示例。

你需要先打电话给ajust()

Printdata = Information()
Printdata.ajust()
print(Printdata.name)

但是,一旦您调用它name它将始终是 250,我建议您改用property以允许更多更改

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

让我们来看看幕后发生了什么。 你的类信息有一个构造函数(在python中,这些是由方法__init__(self(定义的(。

当你调用 Information(( 时,实际上你是在调用构造函数,它返回你的对象的实例,在本例中是一个 Information 对象,它还将 name 设置为 200。

因此,当您在新构建的信息上打印名称时,名称将为 200。

你有一个公正的方法。但是你需要调用它才能更新类中的 name 变量。

所以你的事件顺序应该是:构建类,调用ajust,打印名称

最新更新