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要写到最后。而且在子类的构造函数上也要写上这两个东西。

 

原文地址:https://www.cnblogs.com/noah0532/p/10958291.html

时间: 2024-10-29 13:15:15

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

Python说文解字_父类的继承

1. 第一个问题: 我们知道类是可以继承其他类的,在继承的过程中我们不光可以继承父类的方法,还可继承父类的属性,另外还可以在父类的基础上添加自己的东西. 2. 第二个问题: 我们继承父类属性和方法的时候无需再把父类的属性和方法再写一般.通常用的方法是:父类名.方法/属性,另外还有一种方式就是super().的方法.但其实这两种方式是有一些不同的. 首先举例第一种方式:父类名.方法/属性. 代码: class BaseClass: num_Base_calls = 0 def call_me(se

Python说文解字_杂谈08

1. Python变量到底是什么? Python和Java中的变量本质不一样,python的变量实质是一个指针 int str,便利贴 a = 1 # 1. a贴在1上面 # 2. 它的过程是先生成对象,然后贴便利贴. # 3. is 是指的标签贴是否一样. a = 1 b = 1 这个是一样,用的是小整数的内部inter机制的内部优化. == 用的是__eq__这个魔法函数. # 4. 常用的用法是isinstance或者type() is,这两种是通用的.type实际上是指向了这个对象的.

Python说文解字_杂谈05

1. isinstance和type: is和==符号,is指的是内存地址,是不是一个对象,ID知否相同 集成链 class A: pass class B(A): pass b = B() print(isinstance(b,B)) print(isinstance(b,A)) print(type(b) is B) print(id(type(b)),id(B)) # 2943616512536 2943616512536 2. 类变量和对象变量: 类中的self == 实例,其实就等于a

Python说文解字_杂谈06

1. 序列类型的分类: 容器类型:list.tuple,deque 扁平序列:str.bytes.bytearray.array.array 可变序列:list.dequte.bytearray.array 不可变序列:str.tuple.bytes 2. 序列的abc继承关系: 魔法函数构成了协议 3.序列的+ +=和extend的区别: my_list = [] my_list.append(1) my_list.append("a") from collections impor

Python说文解字_Python之多任务_01

Python 之 多任务: Python之多任务是现在多任务编程运用Python语言为载体的一种体现.其中涵盖:进程.线程.并发等方面的内容,以及包括近些年在大数据运算.人工智能领域运用强大的GPU运算能力实现的各种算法.属于Python语言中比较高级的应用形式.文章采取问答的形式对知识点和相关应用的模式进行详解,看似像意识流形态的文章,其内容也是遵循循序渐进,力求全面和精细. 问:什么是多任务? 答:百度定义:“当多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务.

嘻嘻哈哈说文解字(讲)

讲的左边是言,右边是井,我想,老祖宗造这个字的意思应该是:话是应该说,但不能说多,不能井边说,言空了就掉井里了(所谓言虚容易掉到井里面).但奈何我们的记忆总不好,只记住了左边的言,这不,你看我们天天都在讲道德,讲道理,讲公德,讲廉洁,讲大公无私....... 上层一边讲一边注水,中层一边讲一边捞钱,下层,边讲边能搞点啥算点啥. 精英一边讲爱国一边移民,大众一边讲爱国一边拆墙脚 ...... 我说这些绝不是说我们没有素质,没有道德,没有理想的.我们都是好人,确确实实的正派好人,这一切主要坏就坏在这

Java:验证在类继承过程中equals()、 hashcode()、toString()方法的使用

以下通过实际例子对类创建过程汇中常用的equals().hashcode().toString()方法进行展示,三个方法的创建过程具有通用性,在项目中可直接改写. //通过超类Employee和其子类Manager ,验证在类继承过程中equals().hashcode().toString()方法的使用.package equals;public class EqualsTest{    public static void main(String[] args){        Employ

DeepLearning tutorial(2)机器学习算法在训练过程中保存参数

我是小白,说的不是很好,请原谅 @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/43169019 参考:pickle - Python object serialization.DeepLearning Getting started 一.python读取"***.pkl.gz"文件 用到Python里的gzip以及cPickle模块,简单的使用代码如下,如果想详细了解可以参考上面给出的链接. [p

英语词根学习笔记(二)——《英语词根与单词的说文解字》李平武

Part 1 英语词根的基本知识 四.从词根看词缀 传统上,词缀分为两类: 派生词缀,可加在单词上构成派生词,如un-,-er,-ly,ing等: 屈折词缀,可加在词尾上表示语法关系,如-ing(表进行时),-ed(表完成时),-s(表名词复数)等. 但这两种词缀都只能加在自由词根上,无法应对粘附词根带来的词缀问题. 如果检视含有粘附词根的单词,可以分析出许多与粘附词根相对的成分: 含有粘附词根的单词 与粘附词根相对的成分 visible -ible unite -ite union -ion