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(' 当前无注册用户...') 25 else: 26 print(' 当前已注册用户如下:') 27 n=0 28 for x in userlist: 29 n+=1 30 print(' %d.'%n,x) 31 input(' 按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(' 请输入要查找的用户名:') 51 index=find(uname) 52 if index==-1: 53 print(' 该用户不存在') 54 else: 55 print(' %s 已经注册! ' %uname) 56 print(' 1.修改用户') 57 print(' 2.删除用户') 58 op=input(' 输入序号:') 59 if op == '2': 60 del userlist[index] 61 print(' 已成功删除') 62 else: 63 uname=input(' 请输入新用户名:') 64 if uname=='': 65 print (' 输入无效') 66 else: 67 pwd=input(' 请输入登陆密码:') 68 if pwd=='': 69 print(' 登陆密码无效') 70 else: 71 userlist[index].update(uname,pwd) 72 print(' 已成功修改用户') 73 input(' 按enter键继续...') 74 print() 75 #函数结束 76 77 #添加新用户 78 def adduser(): 79 global userlist 80 uname=input(' 输入新的用户名:') 81 if uname == '': 82 print(' 输入无效') 83 else: 84 if find(uname)>-1: 85 print(' 该用户名存在') 86 else: 87 pwd = input(' 请输入登陆密码:') 88 if pwd == '': 89 print(' 登陆密码无效') 90 else: 91 userlist.append(user(uname,pwd)) #关键 92 print(' 已成功添加用户') 93 input(' 按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(' 已成功保存') 105 print(' 按enter键继续...') 106 print() 107 #函数结束 108 109 #清空数据 110 def clear(): 111 global userlist 112 userlist.clear() 113 print(' 已成功清除所有数据') 114 print(' 按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(' 用户注册信息管理系统') 130 print(' 1.显示全部已注册用户') 131 print(' 2.查找修改删除用户信息') 132 print(' 3.添加新用户') 133 print(' 4.保存用户数据') 134 print(' 5.清空数据') 135 print(' 6.退出系统') 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
笔记第三篇见链接:http://www.cnblogs.com/tenjl-exv/p/8422165.html