如何在类方法中创建全局类var

时间:2018-05-18 01:17:39

标签: python class methods instance global

如果条件满足,我想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)

3 个答案:

答案 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)

说明:

首先,您需要指定您通过r1r2访问全局变量global r1global r2,然后按{{1}分配/更新变量}和r1 = temp