您如何访问类方法中的变量(属性)?

时间:2019-03-14 05:46:41

标签: python python-3.x

如何在类外部程序的主体中访问方法内部的属性/变量?我下面的内容给我一个错误。

class test:
    def yes(self):
        a=5


g=test()
print(g.yes.a)

3 个答案:

答案 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)将允许您检查函数中的变量。