zoukankan      html  css  js  c++  java
  • Python基础-day11-继承和动态设置属性

    继承:

    • Object:python中所有类的基类
    • 通过继承获得父类的属性和方法,提高代码复用率
    class PhoneV1():
        def call_fuc(self):
            print("打电话功能")
    
        def message_fuc(self):
            print("发短信功能")
    
    
    class PhoneV2(PhoneV1):
        def pay(self):
            print("支付功能")
    
    
    class PhoneV3(PhoneV2):
        def sing(self):
            print("播放音乐功能")
    
    
    oppo = PhoneV3();
    oppo.message_fuc()
    oppo.sing()

    被重写的方法,再调用父类的同名方法:

    • 父类名.方法名(self)
    • Super().方法名()
      class PhoneV1():
          def call_fuc(self):
              print("打电话功能")
      
          def message_fuc(self):
              print("发短信功能")
      
      
      class PhoneV2(PhoneV1):
          def pay(self):
              print("支付功能")
      
      
      class PhoneV3(PhoneV2):
          def sing(self):
              print("播放音乐功能")
          def call_fuc(self):
              print("打视频电话后,再调用普通电话功能")
              super().call_fuc()

    动态属性设置:

    # getattr 动态获取属性
    # 第一个参数:类名称
    # 第二个参数:属性值
    # 第三个参数:如果属性不存在,则返回该值
    class TestData():
        url="http://baidu.com"
        method="post"
    print(TestData.method)
    name=getattr(TestData,"url","None")
    print(name)

     # setattr:动态设置属性

    # 动态设置属性:setattr
    title=["name","age","gender"]
    data=["jack","28",""]
    for i in range(len(title)):
        setattr(TestData,title[i],data[i])
    print(TestData.name)
    print(TestData.age)
    print(TestData.gender)
  • 相关阅读:
    1、1、2、3、5、8、13、21、34...... 求第X位数是多少,2种实现方式
    数据库设计的三大范式
    Parse与TryParse的区别
    常用Lambda范例
    【转载】说说JSON和JSONP,
    Lambda表达式
    Winform部署时强名称签名mshtml.dll无效的解决方案
    .net面试问答(大汇总)
    Asp.net MVC3 一语道破
    在asp.net中使用 log4net
  • 原文地址:https://www.cnblogs.com/majinjin/p/15002116.html
Copyright © 2011-2022 走看看