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)

 

posted @ 2021-07-12 15:14  坚持哪怕一点点  阅读(57)  评论(0编辑  收藏  举报