python中的封装继承多态_Python入门之类 封装、继承、多态

本文介绍了Python中的面向对象编程,包括类的创建、对象的实例化,以及面向对象的三大特性——封装、继承和多态。通过实例展示了如何使用这些特性,如创建游戏人物并进行战斗、修炼等操作。最后讨论了Python中的多态实现,即“鸭子类型”。
摘要由CSDN通过智能技术生成

Python入门之类(class)

Python3 面向对象

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。

如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。

接下来我们先来简单的了解下面向对象的一些基本特征。

面向对象技术简介

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

实例变量:定义在方法中的变量,只作用于当前实例的类。

继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,素以Dog也是一个Animal。

实例化:创建一个类的实例,类的具体对象。

方法:类中定义的函数。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。

python3 类创建

面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。

类就是一个模板,模板里可以包含多个函数,函数里实现一些功能

对象则是根据模板创建的实例,通过实例对象可以执行类中的函数

诶,你在这里是不是有疑问了?使用函数式编程和面向对象编程方式来执行一个“方法”时函数要比面向对象简便

面向对象:【创建对象】【通过对象执行方法】

函数编程:【执行函数】

观察上述对比答案则是肯定的,然后并非绝对,场景的不同适合其的编程方式也不同。

总结:函数式的应用场景 --> 各个函数之间是独立且无共用的数据

面向对象三大特性

面向对象的三大特性是指:封装、继承和多态。

一、封装

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。

所以,在使用面向对象的封装特性时,需要:

将内容封装到某处

从某处调用被封装的内容

self 是一个形式参数,当执行 obj1 = Foo('wupeiqi', 18 ) 时,self 等于 obj1

当执行 obj2 = Foo('alex', 78 ) 时,self 等于 obj2

所以,内容其实被封装到了对象 obj1 和 obj2 中&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
封装继承多态是面向对象编程的三个重要概念。 1. 封装(Encapsulation):封装是指将数据和操作数据的方法封装在一起,形成一个类。通过封装,我们可以隐藏类的内部实现细节,只暴露出对外的接口,提高了代码的安全性和可维护性。 2. 继承(Inheritance):继承是指一个类可以继承另一个类的属性和方法。通过继承,子类可以直接使用父类的属性和方法,同时还可以在子类添加新的属性和方法,实现代码的复用和扩展。 3. 多态(Polymorphism):多态是指同一个方法可以根据不同的对象调用出不同的行为。通过多态,我们可以在不改变方法的情况下,根据不同的对象调用相同的方法,实现了代码的灵活性和可扩展性。 在Python封装通过类的定义来实现,继承通过在子类的类名后面加上父类的类名来实现,多态则是Python的一种动态类型语言特性,不需要显式声明。 以下是一个示例代码,演示了Python封装继承多态的含义: ```python # 封装 class Animal: def __init__(self, name): self.name = name def speak(self): pass class Dog(Animal): def speak(self): return "Woof!" class Cat(Animal): def speak(self): return "Meow!" dog = Dog("Buddy") cat = Cat("Kitty") print(dog.speak()) # 输出:Woof! print(cat.speak()) # 输出:Meow! # 继承 class Person: def __init__(self, name): self.name = name def say_hello(self): print("Hello, my name is", self.name) class Student(Person): def __init__(self, name, grade): super().__init__(name) self.grade = grade def say_hello(self): super().say_hello() print("I am in grade", self.grade) person = Person("John") student = Student("Alice", 10) person.say_hello() # 输出:Hello, my name is John student.say_hello() # 输出:Hello, my name is Alice\nI am in grade 10 # 多态 def make_sound(animal): print(animal.speak()) dog = Dog("Buddy") cat = Cat("Kitty") make_sound(dog) # 输出:Woof! make_sound(cat) # 输出:Meow! ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值