python 在 class 或方法中获取新值

python get new value in a class or method

我是 python 的新手,并尝试在 class 中为我的 bool 获取新值。

我尝试创建一个全局的,在初始化中设置。

如何在 getnewvalue() 中获取测试布尔值的新值?

这是我的代码:

test = False

class myclass():
   def changevalue()
       test = True
       getnewvalue()

   def getnewvalue():
       print(test) 

添加

global test

两个函数。生成的代码将是...

test = False

class myclass():
   def changevalue():
       global test
       test = True
       getnewvalue()

   def getnewvalue():
       global test
       print(test)

global 允许函数访问自身以外的变量。 希望这对您有所帮助!

如果您想在 class 中包含数据,最好使用 __init__() 并像这样保存它。 Python 教程中有更多内容:Class Objects.

并使用 __init__ 将 class 初始化为所需的值。 您的代码应如下所示:

test = False

class myclass():

    def __init__(self, test):
        self.test = test  # self keyword is used to access/set attrs of the class
        # __init__() gets called when the object is created, if you want to call
        # any function on the creation of the object after setting the values
        # you can do it here
        self.changevalue()

    def changevalue(self):  # if you want to access the values of the class you
                            # need to pass self as a argument to the function 
        self.test = not test
        self.getnewvalue()

    def getnewvalue(self):
        print(self.test)  # use self to access objects test value

_class = myclass(False)

或者,如果您只想拥有一个带有函数的 class,您可以这样做:

test = False

class myclass():

    @staticmethod
    def changevalue(val)
        return not val

    @staticmethod
    def getnewvalue(test):
        print(test)

_class = myclass()
test = _class.changevalue(test)

这样它就不会在调用时打印您的值,因为它只是将您的值设置为该函数的 return。你必须自己做,但这应该不是问题。 更多关于静态方法的信息:@staticmethod