全局获取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