2.
方法是定义在类中的功能函数,只能被实例调用,在所有的方法声明中都必须有self参数。算一种特殊的函数
函数是可以调用的实体,是对程序逻辑进行结构化或过程化的一种编程方法
3.
# -*- coding: utf-8 -*-
class MoneyFmt(object):
#这个函数写复杂了,可以参考format()函数,相当于自己实现了一次format函数
def dollarize(self,index=1):
money = self.money
st = str(money)
li = st.split('.')
count = len(li[0])/3
#先将符号去掉并记录
if li[0][0] == '-':
if index == 1:
re = '-'
else:
re = '<->'
li[0]=li[0][1:]
else:
re = ''
#数字位不满时补足便于添加逗号
if len(li[0])%3 != 0:
li[0]=li[0].rjust((count+1)*3)
newli = []
i = 0
while i < len(li[0])/3:
# print li[0][0 + i * 3:3 + i * 3]
newli.append(li[0][0+i*3:3+i*3])
i=i+1
#插入逗号以及添加符号
st = ','.join(newli).lstrip()
st = re+'$'+st+'.'+li[1]
return st
#在类初始化的时候传入d选项需要的参数便于__str__调用
def __init__(self,money,index):
self.money = money
self.index = index
def update(self,newmoney):
self.money = newmoney
def __nonzero__(self):
if self.money != 0:
return True
def __repr__(self):
return self.money
def __str__(self):
return self.dollarize(self.index)
if __name__ =='__main__':
mon = MoneyFmt(-1234567.88,0)
print mon.dollarize()
print mon
4.
# -*- coding: utf-8 -*-
import time
class userdb(object):
db = {}
index = False
#初始化时加载文件信息
def __init__(self):
f = open('ar.txt','r')
lines = f.readlines()
f.close()
for line in lines:
#split返回的是list
st1 = line.split(':')
st2 = st1[1].split(',')
name = st1[0]
paswd = int(st2[0])
time = st2[1].strip()
li = []
li.append(paswd)
li.append(time)
self.db[name] = li
#登录
def login(self,name,paswd):
if self.db[name][0] == paswd:
print 'your last time login:',self.db[name][1]
self.db[name][1] = time.strftime("%Y %m %d %H %M", time.localtime())
self.index = True
else:
print 'login fail'
#添加
def adduser(self,newname,newpaswd):
if self.index == True:
ti = time.strftime(