类的专有方法疑问,求大神指点
本帖最后由 aingwen 于 2014-10-31 15:55 编辑先上代码:class Money():
def __init__(self,value=0.0):
self.value = float('%.2f' % value)
#def __repr__(self):
#return 'self.value'
def __str__(self):
s = str(self.value).split(".")
t = list(s)
ifs.startswith("-"):
n = len(t)-1
else:
n = len(t)
for i in range(3,n,3):
j = i + i/3 -1
t[-j:-j-1]=','
if t == "-":
t.remove("-")
t = "".join(t)
val = "-$%s" % (".".join(]))
return val
else:
t = "".join(t)
val = "$%s" % (".".join(]))
return val
#def __nonzero__(self):
# return bool(self.value)
a = Money(2345.3333)
print a这个类的目的是将输入的数值转换成以$ 开头的钱格式,如: 2345.3333==》 $2,345.33-234.5678 ==》 -$234.57
问题1: 输入0的时候结果显示 $0.0 而不是 0.0
问题2: __str__() 它不是已经自动调用str()了吗,为啥我把代码中红色那里的str()去掉就会报错,不是太理解__str__(),
问题3: __repr__() 和上面那个问题一样,没明白什么时候才是适合用;
问题4:__nonzero__(self)去掉或不去掉好像没什么不同,不理解什么情况下才是它发挥作用的时候
以上几个问题跪求各位大神指点
页:
[1]