我不明白为什么__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] 删除。
我来说两句