zoukankan      html  css  js  c++  java
  • 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属性




  • 相关阅读:
    C# 提取方法重构
    防抖和节流
    利用Object.keys快速循环对象
    MVVM深入理解---小白速会
    异步组件使用详解
    动态组件使用详解
    Vue.$nextTick详解
    深入理解vue .sync修饰符
    vue计算属性---快速上手
    grid-layout 网格布局--快速上手
  • 原文地址:https://www.cnblogs.com/nanyu/p/9888917.html
Copyright © 2011-2022 走看看