Python类属性错误

英国广播公司

像这样的错误打印 调用代码 类定义

我不明白为什么__init__会被叫两次,并且会产生不同类型的财产?

class Test(object):
    def __init__(self, dataobj):
        self._dataobj = dataobj
        print 'called inside test function %s' % type(self._dataobj)

    @property
    def dataobj(self):
        return self._dataobj

Test(locals()) 给出:

called inside test function <type 'dict'>
called inside test function <class 'Test'>

这似乎是传递引用/值的问题,但是我不明白为什么它给出不同的类型并被调用两次。非常感谢!

安韦什
class Test(object):
    def __init__(self, dataobj):
        self._dataobj = dataobj
        print 'called inside test function %s' % type(self._dataobj),self._dataobj

    @property
    def dataobj(self):
        return self._dataobj

Test(Test(locals()))

我猜您为测试类输入了错误的呼叫。否则您将无法获得该结果。Test(Test(locals()))将产生您得到的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章