gpt4 book ai didi

python - 属性错误: 'function' object has no attribute

转载 作者:行者123 更新时间:2023-12-01 00:56:14 32 4
gpt4 key购买 nike

我需要访问全局变量(g)。它存在于类中的另一个 python 文件中。请建议我如何访问。

测试1.py:

class cls():
def m1(self):
inVar = 'inside_method'
global g
g = "Global"
x = 10
y = 20
print("Inside_method", inVar)
print (x)
print (y)
print (g)
obj = cls()
obj.m1()

测试2.py:

from test1 import *
print (cls.m1) # I can access all variables in method
print (cls.m1.g) # getting error while accessing variable inside the function

我希望从 test2.py 访问变量“g”。你能帮我一下吗?

最佳答案

全局变量是模块的属性,而不是 c1类或m1方法。因此,如果您导入了模块而不是模块中的所有名称,则可以在那里访问它:

import test1

# references the `m1` attribute of the `cls` name in he `test1` module
# global namespace.
print(test1.cls.m1)
# references the `g` name in he `test1` module global namespace.
print(test1.g)

您还运行 cls().m1() test1 中顶层的表达式模块,因此第一次导入任何内容时都会执行 test1 。这意味着您的 from test1 import *表达式创建了一个名称 g在你的test2命名空间也是:

from test1 import *  # imported cls, obj and g

print(g) # "Global"

但是,该引用不会随着对 test1.g 的任何分配而改变。全局。

关于python - 属性错误: 'function' object has no attribute <Variable>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56236341/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com