为什么我不能从类外部访问__init__中定义的类变量?

时间:2018-05-19 06:47:03

标签: python python-2.7 class attributes

我想知道类以及如何通过打印或使用_str__函数从外部访问它们的值。我遇到了这个问题: Python function not accessing class variable

然后我在Shell中进行了这个测试,但它并没有像预期的那样工作。我想知道为什么另一个答案有效,但不是这个。

(编辑) 我的问题是如何实例化一个类,而不是实例变量。

>>> class test:
    def __init__(self):
        self.testy=0
    def __str__(self):
        return self.testy


>>> a=test
>>> b=test
>>> print(a)
<class '__main__.test'>
>>> a
<class '__main__.test'>
>>> a.testy
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    a.testy
AttributeError: type object 'test' has no attribute 'testy'
>>> 

2 个答案:

答案 0 :(得分:0)

您在 init 中定义变量,该变量仅在实例化类时调用。如需更长时间的解释,我会就您所链接的问题向您推荐第一个答案。

答案 1 :(得分:0)

您在创建对象时遇到了错误,请在下面找到差异:

Date Open High Low Close Volume Market Cap May 18, 2018 12.36 16.22 12.05 15.14 243,261,000 1,409,710,000 May 17, 2018 12.32 12.97 12.27 12.46 54,251,500 1,404,490,000 May 16, 2018 12.56 12.57 11.95 12.26 35,233,200 1,432,140,000 May 15, 2018 12.85 13.27 12.51 12.57 45,696,200 1,465,880,000 May 14, 2018 13.16 13.17 12.36 12.87 49,317,700 1,500,590,000 May 13, 2018 13.01 13.55 12.74 13.12 70,816,500 1,483,450,000 May 12, 2018 12.97 13.15 12.25 12.94 44,001,000 1,479,430,000 May 11, 2018 13.88 14.09 12.59 12.99 57,027,500 1,582,950,000 May 10, 2018 14.68 15.05 13.82 13.82 68,250,000

你做了什么:

class test:
def __init__(self):
    self.testy=0
def __str__(self):
    return self.testy

a = test()
b = test()
a.testy
       output: 0

说明:

为课程使用c = test d = test c.testy Traceback (most recent call last): File "<input>", line 1, in <module> AttributeError: type object 'test' has no attribute 'testy'

创建objects

** https://docs.python.org/3/tutorial/classes.html#class-objects