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)
  • 相关阅读:
    ajax数据查看工具(chrome插件)
    JavaScript性能优化小知识总结
    jsonp
    学习Javascript闭包(Closure)
    浅析闭包和内存泄露的问题
    设备像素比
    【前端福利】用grunt搭建自动化的web前端开发环境-完整教程
    java开发的web下载大数据时的异常处理
    Node.js中的exports与module.exports的区分
    Task与Thread间的区别
  • 原文地址:https://www.cnblogs.com/majinjin/p/15002116.html
Copyright © 2011-2022 走看看