date:2018.2.5
第五章 面向对象编程
1.python的面向对象
pythpn的类:概念与c++差不多,不再赘述
python的对象
- 类对象
- 实例对象
- 细微注意点不再赘述
2.定义和使用类
class 类名:
赋值语句...
赋值语句...
使用类
3.对象的属性和方法
对象的属性
共享属性
实例对象的私有属性
对象的属性是动态的
对象的方法
类的伪私有属性和方法
构造函数和析构函数:__init__和__del__
4.类的继承
简单继承
定义子类的属性和方法
调用超类的构造函数
多重继承:按从左到右
5.运算符重载
加法运算符重载:__add__
索引和分片重载:__getitem__、__setitem__、__delitem__
自定义迭代器对象
迭代器对象只能使用一次
有多个迭代器的对象
定制对象的字符串形式
- 只重载__str__方法
- 只重载__repr__方法
- 同时重载
6.模块中的类
用import或from导入类
date:2018.2.6
7.编程实战:用户注册信息管理系统
1 from pickle import dump,load
2
3 ##定义user 类,实例对象的uname属性存储用户名,pwd属性存储登陆密码
4 class user:
5 #构造函数__init__()创建实例对象时初始化用户名和登陆密码,默认值为None
6 def __init__(self,uname=None,pwd=None):
7 self.uname=uname
8 self.pwd=pwd
9
10 #修改用户名和密码
11 def update(self,uname,pwd):
12 self.uname=uname
13 self.pwd=pwd
14
15 #__repr__()方法定义对象打印格式
16 def __repr__(self):
17 return'username=%-16s password=%s'%(self.uname,self.pwd)
18 ##user类代码结束
19
20 ##函数showall()显示当前已注册用户信息
21 def showall():
22 global userlist
23 if len(userlist)==0:
24 print('\t当前无注册用户...')
25 else:
26 print('\t当前已注册用户如下:')
27 n=0
28 for x in userlist:
29 n+=1
30 print('\t%d.'%n,x)
31 input('\t按enter键继续...')
32 print()
33
34 #查找已注册用户
35 def find(namekey):
36 global userlist
37 n = -1
38 for x in userlist:
39 n += 1
40 if x.uname == namekey:
41 break
42 else:
43 n = -1
44 return n
45 #函数结束
46
47 #修改或删除操作
48 def check_updata():
49 global userlist
50 uname=input('\t请输入要查找的用户名:')
51 index=find(uname)
52 if index==-1:
53 print('\t该用户不存在')
54 else:
55 print('\t%s 已经注册! ' %uname)
56 print('\t 1.修改用户')
57 print('\t 2.删除用户')
58 op=input('\t输入序号:')
59 if op == '2':
60 del userlist[index]
61 print('\n\t已成功删除')
62 else:
63 uname=input('\t请输入新用户名:')
64 if uname=='':
65 print ('\t输入无效')
66 else:
67 pwd=input('\t请输入登陆密码:')
68 if pwd=='':
69 print('\t登陆密码无效')
70 else:
71 userlist[index].update(uname,pwd)
72 print('\t已成功修改用户')
73 input('\t按enter键继续...')
74 print()
75 #函数结束
76
77 #添加新用户
78 def adduser():
79 global userlist
80 uname=input('\t输入新的用户名:')
81 if uname == '':
82 print('\t输入无效')
83 else:
84 if find(uname)>-1:
85 print('\t该用户名存在')
86 else:
87 pwd = input('\t请输入登陆密码:')
88 if pwd == '':
89 print('\t登陆密码无效')
90 else:
91 userlist.append(user(uname,pwd)) #关键
92 print('\t已成功添加用户')
93 input('\t按enter键继续...')
94 print()
95 #函数结束
96
97 #将用户信息保存进文件
98 def save():
99 global userlist
100 myfile=open(r'userdate.bin','wb')
101 global userlist
102 dump(userlist,myfile)
103 myfile.close()
104 print('\t已成功保存')
105 print('\t按enter键继续...')
106 print()
107 #函数结束
108
109 #清空数据
110 def clear():
111 global userlist
112 userlist.clear()
113 print('\t已成功清除所有数据')
114 print('\t按enter键继续...')
115 print()
116 #函数结束
117
118 #程序启动#########
119 myfile=open(r'userdate.bin','rb')
120 x=myfile.read(1)
121 if x==b'':
122 userlist=list()
123 else:
124 myfile.seek(0)
125 userlist=load(myfile)
126 myfile.close()
127
128 while True:
129 print('\t用户注册信息管理系统')
130 print('\t1.显示全部已注册用户')
131 print('\t2.查找修改删除用户信息')
132 print('\t3.添加新用户')
133 print('\t4.保存用户数据')
134 print('\t5.清空数据')
135 print('\t6.退出系统')
136 print()
137 no=input('请输入序号选择对应菜单:')
138 if no=='1':
139 showall()
140 elif no=='2':
141 check_updata()
142 elif no=='3':
143 adduser()
144 elif no=='4':
145 save()
146 elif no=='5':
147 clear()
148 elif no=='6':
149 print('系统已退出')
150 break
151 else:
152 print('请重新输入')
153
154 #程序结束
PS:有兴趣可自行测试,部分测试样例如下:
用户注册信息管理系统
1.显示全部已注册用户
2.查找修改删除用户信息
3.添加新用户
4.保存用户数据
5.清空数据
6.退出系统
请输入序号选择对应菜单:1
当前无注册用户...
按enter键继续...
用户注册信息管理系统
1.显示全部已注册用户
2.查找修改删除用户信息
3.添加新用户
4.保存用户数据
5.清空数据
6.退出系统
请输入序号选择对应菜单:3
输入新的用户名:ten
请输入登陆密码:23345
已成功添加用户
按enter键继续...
用户注册信息管理系统
1.显示全部已注册用户
2.查找修改删除用户信息
3.添加新用户
4.保存用户数据
5.清空数据
6.退出系统
请输入序号选择对应菜单:3
输入新的用户名:jia
请输入登陆密码:456754
已成功添加用户
按enter键继续...
用户注册信息管理系统
1.显示全部已注册用户
2.查找修改删除用户信息
3.添加新用户
4.保存用户数据
5.清空数据
6.退出系统
请输入序号选择对应菜单:3
输入新的用户名:lu
请输入登陆密码:111
已成功添加用户
按enter键继续...
用户注册信息管理系统
1.显示全部已注册用户
2.查找修改删除用户信息
3.添加新用户
4.保存用户数据
5.清空数据
6.退出系统
请输入序号选择对应菜单:1
当前已注册用户如下:
1. username=ten password=23345
2. username=jia password=456754
3. username=lu password=111
按enter键继续...
用户注册信息管理系统
1.显示全部已注册用户
2.查找修改删除用户信息
3.添加新用户
4.保存用户数据
5.清空数据
6.退出系统
请输入序号选择对应菜单:4
已成功保存
按enter键继续...
用户注册信息管理系统
1.显示全部已注册用户
2.查找修改删除用户信息
3.添加新用户
4.保存用户数据
5.清空数据
6.退出系统
请输入序号选择对应菜单:5
已成功清除所有数据
按enter键继续...
用户注册信息管理系统
1.显示全部已注册用户
2.查找修改删除用户信息
3.添加新用户
4.保存用户数据
5.清空数据
6.退出系统
请输入序号选择对应菜单:6
系统已退出
Process finished with exit code 0