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)
  • 相关阅读:
    小结css2与css3的区别
    javascript变量的作用域
    javascript面向对象
    小结php中几种网页跳转
    foreach
    post与get,这两人到底神马区别??
    typescript遍历Map
    dataTable.js参数
    showModal()和show()的区别
    javascript中location.protocol、location.hostname和location.port
  • 原文地址:https://www.cnblogs.com/majinjin/p/15002116.html
Copyright © 2011-2022 走看看