Python说文解字_继承过程中的参数集合

Posted noah0532

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python说文解字_继承过程中的参数集合相关的知识,希望对你有一定的参考价值。

1. 先看一段属性继承的代码:

class User:
    def __init__(self,name,age):
        self.name = name
        self.age = age

class User1(User):
    def __init__(self,name,age,height,weight):
        self.height = height
        self.weight = weight
        # 此处像继承父类的name 和 age
        super().__init__(name, age)



user1 = User1(thomas,38,180,80)

print(user1.height)
print(user1.weight)
print(user1.name)
print(user1.age)

# 180
# 80
# thomas
# 38

  说明1:当然这么写一点儿毛病都没有,但是有一个问题是,我们在子类继承的时候还需要在写明父类当中的具有的属性name和age嘛?这样写有点儿麻烦。

  说明2:我们如果有N个父类的参数,每次要继承父类参数的时候不带累死了,如果父类参数当中还有字典,字符串等等。如何处理?

  说明3:其实这里我们就用到了*args,**kwargs可变长参数的妙用了。我们定义父类有N个不同类型的参数,再来看一下,可以如何简单的应用。

 

  更改代码2

class User:
    def __init__(self,name,age,address = Qingdao,dicts = key:value):
        self.name = name
        self.age = age
        self.address = address
        self.dicts = dicts


class User1(User):
    def __init__(self,height,weight,*args,**kwargs):
        super().__init__(*args,**kwargs)
        self.height = height
        self.weight = weight

user1 = User1(180,80,thomas,38)

print(user1.height)
print(user1.weight)
print(user1.name)
print(user1.age)
print(user1.address)
print(user1.dicts)

# 180
# 80
# thomas
# 38
# Qingdao
# key: value

  说明1:很牛X吧?其实我们不用具体的说明父类有哪些属性参数值,用不定长参数就搞定了,这样简写了很多代码量:记住:super().__init__(*args,**kwargs)

  说明2:但是注意一点。*args和**kwargs要写到最后。而且在子类的构造函数上也要写上这两个东西。

 

 

以上是关于Python说文解字_继承过程中的参数集合的主要内容,如果未能解决你的问题,请参考以下文章

Python说文解字_杂谈08

Python说文解字_杂谈06

Python说文解字_杂谈05

Python说文解字_Python之多任务_01

说文解字

英文单词之说文解字(10)你真的用对“著名”了吗?