aingwen 发表于 2014-10-31 15:35

类的专有方法疑问,求大神指点

本帖最后由 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]
查看完整版本: 类的专有方法疑问,求大神指点