如果条件满足,我想global
instance
class 'test'
。
我只是直观地编写代码,但是没有用。我该如何解决?
class test:
def __init__(self, a=0, b=0):
self.a = a
self.b = b
def set_glob(self, check):
if check:
temp = test(1,1)
global r1 = temp ##<- syntax error at " = "
global r2 = self ##<- syntax error at " = "
a=test(1,2)
a.set_glob(True)
答案 0 :(得分:3)
两件事。您需要在单独的行上声明全局变量。然后,您需要担心作为变量名的test
何时出现...在类定义完成后它。
class test:
def __init__(self, a=0, b=0):
self.a = a
self.b = b
def set_glob(self, check):
if check:
temp = test(1,1)
global r1
global r2
r1 = temp
r2 = self
a=test(1,2)
a.set_glob(True)
答案 1 :(得分:2)
尝试以下方法:
global r1
r1 = temp
global r2
r2 = self
IIRC,当您声明global x
时,您声明对于您所在范围的剩余部分,您计划使用x
作为全局变量。
答案 2 :(得分:1)
class test:
def __init__(self, a=0, b=0):
self.a = a
self.b = b
def set_glob(self, check):
if check:
temp = test(1,1)
global r1
r1 = temp
global r2
r2 = self
a=test(1,2)
a.set_glob(True)
说明:
首先,您需要指定您通过r1
和r2
访问全局变量global r1
和global r2
,然后按{{1}分配/更新变量}和r1 = temp