为什么这个测试用例
import unittest
class PropTest(unittest.TestCase):
def test(self):
class C():
val = 'initial val'
def get_p(self):
return self.val
def set_p(self, prop):
if prop == 'legal val':
self.val = prop
prop=property(fget=get_p, fset=set_p)
c=C()
self.assertEqual('initial val', c.prop)
c.prop='legal val'
self.assertEqual('legal val', c.prop)
c.prop='illegal val'
self.assertNotEqual('illegal val', c.prop)
失败如下?在
^{pr2}$
您的类
C
不是从object
或任何其他新样式的类继承的,因此它是一个旧样式的类(因此不支持属性)。描述符仅用于新样式的类。要修复,请将class C()
更改为class C(object)
。在如果您感兴趣,http://www.python.org/download/releases/2.2.3/descrintro/提供了一些详细信息。新样式的类在几个方面更好。在
相关问题 更多 >
编程相关推荐