在 Python 类中,我有以下方法
def foo(self,arg1, arg2):
global run
run = False
在同一个类中,在我的构造函数中
while run:
sleep(0.01)
self.each_frame()
self.server.close()
run = True
以这种方式在类方法中对全局变量进行细化可以吗?
在 Python 类中,我有以下方法
def foo(self,arg1, arg2):
global run
run = False
在同一个类中,在我的构造函数中
while run:
sleep(0.01)
self.each_frame()
self.server.close()
run = True
以这种方式在类方法中对全局变量进行细化可以吗?
这是一个可怕的想法。如果您需要在实例之间共享的变量,请在类中定义它。如果您需要在方法之间共享的变量,请在对象上定义它们:
class Foo(object):
this_is_a_class_variable = 0
def __init__(self,*args):
self.this_is_an_object_variable = None
这样你就不会global只在类的范围内定义 var。您将其定义为程序的全局范围,这是一个非常糟糕的主意。
如果你想在你的类之间共享状态,你有两种方法:
self.run = False:)self.__class__.run = False或者只是在你的类的定义中:class A(object): run = False希望这可以帮助!
谢谢!以这种方式定义全局的做法非常糟糕,而是在我的构造函数中应该有
self.run =true
while self.run:
sleep(0.01)
self.each_frame()
self.server.close()
然后在同一个类中的一个方法中
def foo(self,arg1, arg2):
self.run = False
正确的?