【问题标题】:python, __str__ a private variablepython, __str__ 一个私有变量
【发布时间】:2013-03-24 18:51:37
【问题描述】:

我正在尝试使用私有变量,所以制作了这个测试用例。

class X():
    def __init__(self):
        self.__a = 0
    def __str__(self):
        print(self.getA())
    def getA(self):
        return self.__a
x = X()
print(x.getA())
print(str(x.getA()))
print(x)

输出是:

0
0
0
Traceback (most recent call last):
  File "/Users/lego90511/Documents/workspace/dummy/dummy.py", line 150, in <module>
    print(x)
TypeError: __str__ returned non-string (type NoneType)

错误是因为它是私有的吗?因为这对我来说没有意义,因为 getA() 有效。

【问题讨论】:

    标签: python printing private


    【解决方案1】:

    __str__() 函数应该返回一个字符串,而不是打印一个。

    您遇到的错误是 str(x) 期望 x.__str__() 返回一个字符串,而您的则不返回任何内容 (NoneType)。

    【讨论】:

    • 好吧,我修复了 str 行,现在它是 str(self.getA()) 但我仍然遇到同样的错误。
    • return str(self.getA())return str(self.__a)
    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 2015-04-19
    • 2011-11-16
    • 2011-10-21
    • 1970-01-01
    • 2015-08-08
    相关资源
    最近更新 更多