如何在类外部程序的主体中访问方法内部的属性/变量?我下面的内容给我一个错误。
class test:
def yes(self):
a=5
g=test()
print(g.yes.a)
答案 0 :(得分:0)
即使'g'是'test'的对象,并且是yes()方法,您也不能直接访问该变量,'a'仍然是yes()的局部变量。您尚未为整个类初始化它。因此,您的对象无法访问它。您需要从函数返回其值。这应该起作用
class test:
def yes(self):
a=5
return a
g=test()
print(g.yes())
答案 1 :(得分:0)
我不确定您为什么要访问它,但这是另一种方法:
from collections import defaultdict
class test:
def __init__(self):
self.for_returns = defaultdict()
def yes(self):
a=7
self.for_returns['a'] = 7
def return_all(self):
return self.for_returns
x = test()
x.yes()
x.return_all()
defaultdict(无,{'a':7})
答案 2 :(得分:0)
在函数内定义的变量具有局部范围,不能从函数外部访问。
如果要从函数内部访问变量,请从函数中return
进行访问:
class test:
def yes(self):
a = 5
return a
g = test()
print(g.yes())
但是,我怀疑您可能希望将变量设置为实例变量:
class test:
def __init__(self):
self.a = None
def yes(self):
self.a = 5
# Do some other things here...
g = test()
g.yes()
print(g.a)
最后,如果您正在使用外部代码,并且出于调试目的对此感兴趣,那么python debugger (pdb)将允许您检查函数中的变量。