0

运行此代码时,出现错误“AttributeError:'NoneType' 对象没有属性'test'”

class BaseClass:
    def __new__(self, number):
        self.test = 1

class InheritedClass(BaseClass):
    pass

instance = InheritedClass(1)
print(instance.test)

有人可以向我解释一下到底从基地继承了什么?Python 2 和 3 之间似乎存在差异,因为如果我将“test”放在 Baseclass 的属性字段中,我可以在 Python 2 中访问它,但不能在 3 中访问它。

4

2 回答 2

0

尝试将“ new ”替换为“ init

class BaseClass:
    def __init__(self, number):
        self.test = 1

class InheritedClass(BaseClass):
    pass

instance = InheritedClass(1)
print(instance.test)
于 2017-12-01T10:41:44.640 回答
0

newinit之间有区别。要访问这样的字段,您应该在 init 中调用它们。

于 2017-12-01T10:42:20.557 回答