Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中列表的global()函数_Python - Fatal编程技术网

python中列表的global()函数

python中列表的global()函数,python,Python,Python:3.8.1 我无法使用global()函数在类变量中追加数据 class test(): __cv__ = [] def testglobalmethod(self, data): globals()['__cv__']=[data] print(__cv__) rrr = test() rrr.testglobalmethod("1") rrr.testglobalmethod(

Python:3.8.1

我无法使用global()函数在类变量中追加数据

class test():
    __cv__ = []

        def testglobalmethod(self, data):
            globals()['__cv__']=[data]
            print(__cv__)


    rrr = test()
    rrr.testglobalmethod("1")
    rrr.testglobalmethod("2")
预期结果:- ['1','2']

实际结果:- ['1'] ['2']

append函数产生以下错误:-

def testglobalmethod(self, data):
    globals()['__cv__'].append(data)
    print(__cv__)

错误:
KeyError:“\uuuu cv\uuuu”

您有一个类属性,而不是全局变量

class Test():
    __cv__ = []

    def testglobalmethod(self, data):
        Test.__cv__.append(data)
        print(Test.__cv__)


rrr = Test()
rrr.testglobalmethod("1")
rrr.testglobalmethod("2")

您有一个类属性,而不是全局变量

class Test():
    __cv__ = []

    def testglobalmethod(self, data):
        Test.__cv__.append(data)
        print(Test.__cv__)


rrr = Test()
rrr.testglobalmethod("1")
rrr.testglobalmethod("2")

你为什么要这么做?@wim我最近学习了global()函数。我试着用绳子,效果非常好。因此,我正在尝试使用列表来查看它是如何工作的。
\uuuu cv\uuuu
不是全局的,它是一个类属性。为什么您希望能够通过
globals
访问它?您的所有代码都是
测试
类范围的一部分,这是故意的吗?不要发明自己的dunder名称;它们被保留供语言本身使用。如果您想强调它仅用于
test
类的方法,只需使用
cv
,或
\u cv
。为什么要这样做?@wim我最近学习了global()函数。我试着用绳子,效果非常好。因此,我正在尝试使用列表来查看它是如何工作的。
\uuuu cv\uuuu
不是全局的,它是一个类属性。为什么您希望能够通过
globals
访问它?您的所有代码都是
测试
类范围的一部分,这是故意的吗?不要发明自己的dunder名称;它们被保留供语言本身使用。只要使用
cv
,或者
\u cv
,如果您想强调它仅用于
test
类的方法。