1 dt={} 2 class Denglu: 3 def register(self,name,psd): 4 if name.isalnum() and psd.isalnum(): 5 if name not in dt.keys(): 6 dt[name]=psd 7 print('注册成功') 8 else: 9 print('已经存在该用户名') 10 else: 11 print('你输入的账户名称或密码不符合规定') 12 def login(self,name,psd): 13 if len(dt): 14 if name in dt.keys(): 15 if psd==dt[name]: 16 print('登陆成功') 17 else: 18 print('密码错误') 19 else: 20 print('该用户未注册') 21 else: 22 print('未曾有人注册过') 23 def modify(self,name,psd): 24 if name in dt.keys() and psd!=' ': 25 dt[name]=psd 26 print('修改密码成功') 27 else: 28 print('该账户不存在') 29 class main(Denglu): 30 def show(self): 31 opt=input('请输入选项 ' 32 '1——注册 ' 33 '2——登陆 ' 34 '3——修改密码 ' 35 '4——退出系统 ') 36 if opt.isdigit(): 37 opt=int(opt) 38 if 1<=opt<=4: 39 return opt 40 else: 41 return 0 42 else: 43 return 0 44 def din(self): 45 while True: 46 t=self.show() 47 if t==1: 48 name=input('[注册]请输入用户名') 49 psd=input('[注册]请输入密码') 50 name=name.strip() 51 psd=psd.strip() 52 self.register(name,psd) 53 elif t==2: 54 name=input('[登陆]请输入用户名') 55 psd=input('[登陆]请输入密码') 56 name=name.strip() 57 psd=psd.strip() 58 self.login(name,psd) 59 elif t==3: 60 name=input('[修改]请输入用户名') 61 psd=input('[修改]请输入密码') 62 name=name.strip() 63 psd=psd.strip() 64 self.modify(name,psd) 65 elif t==4: 66 print('退出系统') 67 break 68 else: 69 print('亲 按要求输入哦!') 70 temp=main() 71 temp.din()
对于面向对象编程 类继承来说这是一个很经典的例子,原谅我直接上代码了哈。。然后是关于静态方法。类方法。的调用
对于各种方法的解释不做缀释。。
1 class TaSt: 2 age = 88 # 类属性 3 4 def __init__(self, name): 5 self.name = name # 实例属性 6 7 def show(self, b): 8 print(u'实例方法', b) 9 10 @staticmethod 11 def show2(a): 12 print(u'静态方法',a) 13 14 @classmethod 15 def add(cls, a): # 第一个参数必须是类本身 16 print(u'类方法', a) 17 18 19 t1 = TaSt('55') # 实例化一个对象 20 t1.show('调用实例方法') # 调用实例方法 21 TaSt.show(t1, '类调用实例方法。传参是实例化后对象') # 类调用实例方法。传参是实例化后对象 22 t1.show2('实例调用静态方法') # 实例调用静态方法 23 TaSt.show2('类调用静态方法') # 类调用静态方法 24 t1.add('类方法实例化后调用') # 类方法实例化后调用 25 TaSt.add('类方法直接使用类名调用') # 类方法直接使用类名调用 26 print(t1.name, '调用实例属性') # 类调不了 27 print(t1.age, '调用lei属性') 28 print(TaSt.age, '调用lei属性')
输出结果::
》》实例方法 调用实例方法
》》实例方法 类调用实例方法。传参是实例化后对象
》》静态方法 实例调用静态方法
》》静态方法 类调用静态方法
》》类方法 类方法实例化后调用
》》类方法 类方法直接使用类名调用
》》55 调用实例属性
》》88 调用lei属性
》》88 调用lei属性