怎么让python断言正确
如何让python断言正确
如题,补充C中的代码,让断言正确
d={'a':'1','b':'m','c':'2010-01-01','d':'2'}
class C(object):
pass
c=C()
print 'c.a=',c.a
print 'c.b=',c.b
print 'c.c=',c.c
print 'c.d=',c.d
c.a =d['a']
assert c.a == 1
c.b=d['b']
assert c.b=='m'
c.c=d['c']
assert c.c==datetime.datetime(2010,1,1).date()
c.d=d['d']
assert c.d=='2'
------解决思路----------------------
#这题应该考的是重载类的内置函数 已解
如题,补充C中的代码,让断言正确
d={'a':'1','b':'m','c':'2010-01-01','d':'2'}
class C(object):
pass
c=C()
print 'c.a=',c.a
print 'c.b=',c.b
print 'c.c=',c.c
print 'c.d=',c.d
c.a =d['a']
assert c.a == 1
c.b=d['b']
assert c.b=='m'
c.c=d['c']
assert c.c==datetime.datetime(2010,1,1).date()
c.d=d['d']
assert c.d=='2'
------解决思路----------------------
import datetime
d={'a':'1','b':'m','c':'2010-01-01','d':'2'}
class C(object):
def __init__(self):
self.a = 0
self.b = 0
self.c = 0
self.d = 0
def __setattr__(self, name, value):
self.__dict__[name]=value
def __getattribute__(self, name):
if name == "a":
return int(object.__getattribute__(self, name))
if name == "c":
return datetime.datetime.strptime(object.__getattribute__(self, name),'%Y-%m-%d').date()
return object.__getattribute__(self, name)
c=C()
c.a=d['a']
assert c.a==1
c.b=d['b']
assert c.b=='m'
c.c=d['c']
assert c.c==datetime.datetime(2010,1,1).date()
c.d=d['d']
assert c.d=='2'
#这题应该考的是重载类的内置函数 已解