编程小白的自学笔记七(python中类的继承)

举报
踏破千重浪 发表于 2023/08/14 20:06:45 2023/08/14
【摘要】 目录系列文章目录前言一、单继承二、多继承三、__init__()函数总结前言在Python中,类的继承是通过使用关键字“class”和括号来定义的。子类可以继承父类的所有属性和方法,并且还可以添加自己的属性和方法。一、单继承继承,继承顾名思义,把你的都给我,也就是说一个类有了另一类的属性和方法。继承的类叫子类,被继承的类叫父类,也就是说子类有父类所有的方法和属性,而且子类还有自己的方法和属性...

目录

系列文章目录

前言

一、单继承

二、多继承

三、__init__()函数

总结

前言
在Python中,类的继承是通过使用关键字“class”和括号来定义的。子类可以继承父类的所有属性和方法,并且还可以添加自己的属性和方法。

一、单继承
继承,继承顾名思义,把你的都给我,也就是说一个类有了另一类的属性和方法。继承的类叫子类,被继承的类叫父类,也就是说子类有父类所有的方法和属性,而且子类还有自己的方法和属性,举个例子,特仑苏是牛奶,但是不是所有的牛奶都叫特仑苏,牛奶是父类,特仑苏是子类。

只有一个父类的继承叫做单继承,我们来看一下代码。

class fulei:
    def __init__(self):
        pass
    def fangfa(self):
        print('我被继承的')
        
class zilei(fulei):
    pass
dog = zilei()
dog.fangfa()
程序运行结果不出所料,输出了“我被继承的”,可以看出,在“zilei”我并没有定义“fangfa”方法,但是实例后,却可以调用,说明“zilei”是有这个方法,哪来的呢?继承“fulei”来的。

同时在这里我学到一个新知识,默认情况下,类是从“object”类继承下来的,这种情况下“object”和括号都可以省略,所以我们定义“fulei”时,后面没有括号。若不是继承“object”类,那么需要按照规则编写代码。

二、多继承
顾名思义,多继承就是继承了多个父类,拥有多个父类的属性和方法,这个在显示生活中也是存在的,比如说男大学生,既有男人的全部属性,也有大学生的全部属性,不知道我这个例子举的恰当不恰当。我们来看一下代码: 

class Dog:
    def run(self):
        print('我会跑')
        
class Cat:
    def jump(self):
        print('我会跳')
        
class zilei(Dog,Cat):
    pass
dog = zilei()
dog.run()
dog.jump()
运行成功,输出结果是:

我会跑

我会跳

说明子类具有两个的父类的方法,这里我尝试没有写__init__方法,程序也是能正常运行,为此,我又专门了解了下__init__()的用法。

三、__init__()函数
`__init__()`函数是Python类中的特殊方法之一,它在创建对象时被自动调用。该函数通常用于初始化对象的属性和执行其他必要的操作。

`__init__()`函数的语法如下:

```python
class ClassName:
    def __init__(self, arg1, arg2, ...):
        self.attribute1 = arg1
        self.attribute2 = arg2
        ...
```

其中,`ClassName`表示要定义的类名,`arg1`, `arg2`, ...表示传递给构造函数的参数。在函数内部,我们可以使用`self`关键字来引用当前对象的属性。

下面是一个简单的例子,演示了如何使用`__init__()`函数来初始化一个名为`Person`的类的对象:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
person1 = Person("Alice", 25)
print(person1.name) # Output: Alice
print(person1.age) # Output: 25
在这个例子中,我们定义了一个名为`Person`的类,并在其中定义了一个`__init__()`函数。该函数接受两个参数:`name`和`age`,并将它们分别赋值给对象的`name`和`age`属性。然后我们创建了一个名为`person1`的`Person`对象,并打印出它的属性值。

 __init__()函数确实不是必须的,但是它在初始化的时候可以对一些属性进行定义,这样就大大方便了我们调用类里面的方法,不需要重复传参。

总结
以下是关于Python类继承的一些总结:

  1. 子类可以继承父类的所有属性和方法,包括私有属性和方法。

  2. 子类可以重写父类的方法,以实现不同的行为。

  3. 子类可以添加新的属性和方法,以扩展父类的功能。

  4. Python中的继承是单向的,即子类不能继承父类的基类。

  5. Python中的继承是动态的,即子类可以在运行时修改其继承自父类的属性和方法。

  6. Python中的继承是多态的,即子类可以重写父类的方法,并根据不同的情况执行不同的代码。

  7. Python中的继承是一种面向对象编程的基本概念,它使得代码更加模块化、可重用和可维护。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。