网络编程
位置:首页>> 网络编程>> Python编程>> python 类的继承 实例方法.静态方法.类方法的代码解析

python 类的继承 实例方法.静态方法.类方法的代码解析

作者:南鱼羁荒渡  发布时间:2021-12-19 14:19:34 

标签: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属性

来源:https://www.cnblogs.com/nanyu/p/9888917.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com