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

yipeiwu_com5年前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属性

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python pandas dataframe 行列选择,切片操作方法

SQL中的select是根据列的名称来选取;Pandas则更为灵活,不但可根据列名称选取,还可以根据列所在的position(数字,在第几行第几列,注意pandas行列的position...

python对验证码降噪的实现示例代码

python对验证码降噪的实现示例代码

前言: 最近写爬虫会经常遇到一些验证码识别的问题,现如今的验证码已经是五花八门,刚开始的验证码就是简单的对生成的验证码图片进行一些干扰,但是随着计算机视觉库的 发展壮大,可以轻松解决简单...

Python在信息学竞赛中的运用及Python的基本用法(详解)

Python在信息学竞赛中的运用及Python的基本用法(详解)

前言 众所周知,Python是一种非常实用的语言。但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序。但正如LRJ在《算法竞赛入门经典-训练指南》中所说的一样,如果会...

树莓派采用socket方式文件传输(python)

树莓派采用socket方式文件传输(python)

两个树莓派,在同一个局域网内,传输文件,采用socket方式。 client端代码: import socket import os import hashlib client =...

Anaconda下配置python+opencv+contribx的实例讲解

Anaconda下配置python+opencv+contribx的实例讲解

先吐槽一下opencv 3.1.0的版本cv2.sift和surf就不能用了 看解释是说 什么 "non-free",,必须要到opencv_contrib库中才有,而这个库的编译不是...