Python 类继承与三种方法调用详解
本文通过具体代码示例,深入解析 Python 中类的继承机制以及实例方法、静态方法和类方法的定义与调用方式。文章展示了如何在注册登录系统中应用类继承,并详细对比了三种方法在实例和类层面的调用差异及参数传递规则,帮助开发者掌握面向对象编程的核心概念。
Python 类继承与方法概述
本文重点解析 Python 中类的继承机制,以及实例方法、静态方法和类方法的具体代码实现。文中提供了详细的示例代码,旨在为读者在学习或实际工作中提供有价值的参考。
类继承在注册登录系统中的应用
dt={}
class Denglu:
def register(self,name,psd):
if name.isalnum() and psd.isalnum():
if name not in dt.keys():
dt[name]=psd
print('注册成功')
else:
print('已经存在该用户名')
else:
print('你输入的账户名称或密码不符合规定')
def login(self,name,psd):
if len(dt):
if name in dt.keys():
if psd==dt[name]:
print('登陆成功')
else:
print('密码错误')
else:
print('该用户未注册')
else:
print('未曾有人注册过')
def modify(self,name,psd):
if name in dt.keys() and psd!=' ':
dt[name]=psd
print('修改密码成功')
else:
print('该账户不存在')
class main(Denglu):
def show(self):
opt=input('请输入选项\n'
'1——注册\n'
'2——登陆\n'
'3——修改密码\n'
'4——退出系统\n')
if opt.isdigit():
opt=int(opt)
if 1<=opt<=4:
return opt
else:
return 0
else:
return 0
def din(self):
while True:
t=self.show()
if t==1:
name=input('[注册]请输入用户名')
psd=input('[注册]请输入密码')
name=name.strip()
psd=psd.strip()
self.register(name,psd)
elif t==2:
name=input('[登陆]请输入用户名')
psd=input('[登陆]请输入密码')
name=name.strip()
psd=psd.strip()
self.login(name,psd)
elif t==3:
name=input('[修改]请输入用户名')
psd=input('[修改]请输入密码')
name=name.strip()
psd=psd.strip()
self.modify(name,psd)
elif t==4:
print('退出系统')
break
else:
print('亲 按要求输入哦!')
temp=main()
temp.din()
面向对象编程中的类继承是一个经典话题。接下来直接通过代码示例进行说明,并重点展示静态方法和类方法的调用方式。
关于各类方法的具体定义和解释,此处不再赘述,重点在于代码层面的演示。
实例方法、静态方法与类方法的调用对比
class TaSt:
age = 88 # 类属性
def __init__(self, name):
self.name = name # 实例属性
def show(self, b):
print(u'实例方法', b)
@staticmethod
def show2(a):
print(u'静态方法',a)
@classmethod
def add(cls, a): # 第一个参数必须是类本身
print(u'类方法', a)
t1 = TaSt('55') # 实例化一个对象
t1.show('调用实例方法') # 调用实例方法
TaSt.show(t1, '类调用实例方法。传参是实例化后对象') # 类调用实例方法。传参是实例化后对象
t1.show2('实例调用静态方法') # 实例调用静态方法
TaSt.show2('类调用静态方法') # 类调用静态方法
t1.add('类方法实例化后调用') # 类方法实例化后调用
TaSt.add('类方法直接使用类名调用') # 类方法直接使用类名调用
print(t1.name, '调用实例属性') # 类调不了
print(t1.age, '调用lei属性')
print(TaSt.age, '调用lei属性')
输出结果::
》》实例方法 调用实例方法
》》实例方法 类调用实例方法。传参是实例化后对象
》》静态方法 实例调用静态方法
》》静态方法 类调用静态方法
》》类方法 类方法实例化后调用
》》类方法 类方法直接使用类名调用
》》55 调用实例属性
》》88 调用lei属性
》》88 调用lei属性
以上就是本文的全部内容,希望能为读者的学习带来帮助,同时也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













