python 类的继承 实例方法.静态方法.类方法的简单解析

 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属性




原文地址:https://www.cnblogs.com/nanyu/p/9888917.html