python核心编程第十三章 13.3

来源:互联网 发布:设置端口untagged 编辑:程序博客网 时间:2024/05/16 10:04
class MoneyFmt(object):
    
    
    def __init__(self, num):
        '''initalize of the class'''
        self.num = num
        
        
    def __str__(self, flag = '-'):
        '''change the float into us dollars'''
        self.flag = True
        self.num = round(self.num,2)
        if self.num < 0:
            self.flag = False
        self.num = str(abs(self.num))
        self.intergePart, self.decimalPart = self.num.split('.')
        self.intergePart = '0' + self.intergePart
        self.digit = len(self.intergePart) -1
        self.list1 = []
        if self.digit > 3:
            self.former = self.digit%3+1
            self.list1.append(self.intergePart[1:self.former])
            self.begin = self.former
            for self.i in range(self.begin,self.digit+2):
                if self.i - self.former == 3:
                    self.list1.append(self.intergePart[self.former:self.i])
                    self.former = self.i
        else:
            self.list1.append(self.intergePart[1:])
        if self.flag == True:
            self.outstring = '$' + ','.join(self.list1) + '.' + self.decimalPart
        else:
            if flag == '-':
                self.outstring = '-' + '$' + ','.join(self.list1) + '.' + self.decimalPart
            elif flag == '<':
                self.outstring = '<' + '$' + ','.join(self.list1) + '.' + self.decimalPart + '>'
        return self.outstring
    
    
    def __nonzero__(self):
        '''when the number is not zero return true'''
        if self.num == 0:
            return True
        else:
            return False
        
        
    def __repr__(self):
        '''return the number in the format of float'''
        return float(self.num)
    
    
    def __update__(self, num):
        '''change the number you input'''
        self.num = num
        
doller1 = MoneyFmt(-13432423.2131)
print doller1.__str__('<')
print doller1.__repr__()
doller1.__update__(124121321.2313)
print doller1.__str__('-')
0 0
原创粉丝点击