python 从属于该类的函数更改在该类的__init__中声明的变量

biswetbf  于 2023-01-16  发布在  Python
关注(0)|答案(1)|浏览(110)
class Canvas:

   def __init__(self):
      self.sprite_priority = sprite_priority
      

   def function(self):

      sprite_priority = sprite_priority.self
      sprite_priority = "value_here"        #this value doesn't change the global value in __init__

我尝试使用全局关键字,但没有改变任何东西。我也尝试在stackoverflow上寻找类似的问题,但答案与我的问题不同。

2vuwiymt

2vuwiymt1#

这里有很多误解。

  1. sprite_priority变量是一个成员类变量,它不是全局变量。它只存在于Canvas类中。
    1.当你引用一个未声明的变量sprite_priority时,上面的代码在调用function时会引发一个错误。你可以自己访问它。
    正确的解决方案如下所示:
class Canvas:

   def __init__(self):
      self.sprite_priority = None
      

   def function(self):
      self.sprite_priority = "value_here"

那你就这么叫吧

canvas = Canvas()
print(canvas.sprite_priority) # The output would be None
canvas.function()
print(canvas.sprite_priority) # The output would be value_here

相关问题