查看原文
其他

Python入门教程15:面向对象编程思想

作者一小红牛 我的Python教程 2024-01-14


Python,速成心法

敲代码,查资料,问度娘

练习,探索,总结,优化

面向对象是把一组数据结构和处理他们的方法组成对象,把具有相同行为的对象归纳成类,通过封装隐藏类的内部细节,通过继承使类得到泛化,通过多态实现基于对象类型的动态分类。在Python里面,它支持面向对象编程的基本概念,如封装、继承和多态。

1.定义类:在Python 中,类的定义使用class 关键字来实现,语法如下:

class ClassName: “类的帮助信息”#类文档字符串      statement #类体

数说明:

ClassName :用于指定类名,一般使用大写字母开头,如果类名中包括两个单词,第二个单词的首字母也大写,这种命名方法也称为“驼峰式命名法”,这是惯例。当然,也可根据自己的习惯命名,但是一般推荐按照惯例来命名。

Statement :类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定义类时,没想好类的具体功能,也可以在类体中直接使用pass语句代替。

2.创建类的实例

class 语句本身并不创建该类的任何实例。所以在类定义完成以后,可以创建类的实例,即实例化该类的对象。创建类的实例的语法如下:

classname(parameterlist)

其中,ClassName 是必选参数,用于指定具体的类;parameterlist 是可选参数,当创建一个类时,没有创建init()方法,或者init()方法只有一个self参数时,parameterlist 可以省略。

3.创建类的成员并访问

所谓实例方法是指在类中定义的函数。该函数是一种在类的实例上操作的函数。实例方法的第一个参数必须是self,并且必须包含一个self参数。创建实例方法的语法格式如下:

def functionName( self, parameterlist): Block

参数说明:

  • functionName :用于指定方法名,一般使用小写字母开头。

  • Self:必要参数,表示类的实例,其名称可以是self以外的单词,使用self只是一个惯例而已。

  • Parameterlist :用于指定除self参数以外的参数,各参数间使用逗号“,”进行分隔。

  • Block :方法体,实现的具体功能。


实例方法创建完成后,可以通过类的实例名称和点(.)操作符进行访问,语法格式如下:

instanceName. functionName(parametervalue)

参数说明:

instanceName :为类的实例名称

functionName :为要调用的方法名称。

Parametervalue :表示为方法指定对应的实际参数,其值的个数与创建实例方法中parameterlist 的个数相同。

4.创建用于计算的属性

通过@property 创建用于计算的属性的语法格式如下:

@ property def methodname(self): block

参数说明:

methodname :用于指定方法名,一般使用小写字母开头。该名称最后将作为创建的属性名。

Self:必要参数,表示类的实例。

Block :方法体,实现的具体功能。在方法体中,通常以return 语句结束,用于返回计算结果。

5.继承的基本语法

通过继承不仅可以实现代码的重用,还可以通过继承来理顺类与类之间的关系。在Python 中,可以在类定义语句中,类名右侧使用一对小括号将要继承的基类名称括起来,从而实现类的继承。具体的语法格式如下:

class ClasSName(baseclasslist):     “类的帮助信息”#类文档字符串       statement #类体


参数说明:

ClassName :用于指定类名。

Baseclasslist :用于指定要继承的基类,可以有多个,类名之间用逗号“,”分隔。如果不指定,将使用所有Python 对象的根类object

“类的帮助信息”:用于指定类的文档字符串,定义该字符串后,在创建类的对象时,输入类名和左侧的括号“(”后,将显示该信息。

Statement :类体,主要由类变量(或类成员)、方法和属性等定义语句组成。如果在定义类时,没想好类的具体功能,也可以在类体中直接使用pass语句代替。

6.方法重写:基类中定义的harvest ()方法,无论派生类是什么水果都显示“水果”,如果想要针对不同水果给出不同的提示,可以在派生类中重写harvest ()方法。例如,在创建派生类Orange 时,重写harvest ()方法的代码如下:

class Orange(Fruit):#定义橘子类(派生类)      color =“橙色”      def init (self)      print ("n我是橘子”) def harvest( self, color):          print (“橘子是:”+color +“的!”)#输出的是形式参数color          print ("橘子已经收获。。。。。") print (“橘子原来是:”+Fruit .color +“的!”);#输出的是类属性color


下面是一个简单的Python面向对象编程的示例:

class Car: def __init__(self, make, model, year): self.make = make self.model = model self.year = year self.odometer_reading = 0 def get_descriptive_name(self): long_name = f"{self.year} {self.make} {self.model}" return long_name.title() def read_odometer(self): print(f"This car has {self.odometer_reading} miles on it.") self.odometer_reading += 1 def increment_odometer(self, miles): self.odometer_reading += miles def reset_odometer(self): self.odometer_reading = 0 my_car = Car('Toyota', 'Corolla', 2020) print(my_car.get_descriptive_name()) my_car.increment_odometer(1000) my_car.read_odometer() my_car.reset_odometer() print(my_car.get_descriptive_name())

在这个示例中,我们定义了一个名为Car的类,它有四个属性:make、model、year和odometer_reading。这些属性都是类的实例变量,并且可以通过类的方法进行访问和修改。我们还定义了四个方法:

  • __init__(self, make, model, year):构造函数,用于初始化实例变量。

  • get_descriptive_name(self):返回汽车的描述性名称。

  • read_odometer(self):打印汽车的里程数。

  • increment_odometer(self, miles):增加汽车的里程数。

  • reset_odometer(self):将汽车的里程数重置为0。


在主程序中,我们创建了一个名为my_car的Car对象,并调用了它的方法。我们还演示了如何使用类的实例变量和方法,以及如何使用类的构造函数来初始化对象。最后,我们打印了my_car对象的描述性名称,并调用了它的方法来增加里程数和读取里程数。

完毕!!感谢您的收看

------------往期更多精彩内容------------

Python最新版本的安装教程(附详细图)

Pycharm的下载与安装方法(附教程图)

Pycharm初始化,新建一个python程序

Pycharm英文页界面,2种汉化的设置方法(教程附图)

Python常用的英文单词集合

Python基础教程:01代码的规范书写

Python基础教程:02内置函数的用法解析

Python基础教程:03运算符与表达式

Python基础教程:04流程控制语句

Python基础教程:05字符串String的用法解析

Python基础教程:06列表,元组,字典的用法

Python入门教程:07文件及目录操作

Python入门教程:08变量,保留字,字符串索引

Python入门教程:09常用的模块库

Python入门教程10:datetime的用法

Python入门教程:11推导式的写法

Python入门教程12:pip命令的使用

Python入门教程13:json的用法

Python入门教程14:高阶函数用法解析

-------------------------------------------------

---------------Python源码集合---------------

Python源代码分享:01九九乘法表

Python源代码分享:02海龟画图五角星

Python源代码分享:03画一个奥运五环图

Python源码分享:04列表数据的奇偶求和

Python源代码分享:05使用turtle模块绘制一个彩色螺旋图案

Python源代码分享:06猜数字大小与剪刀石头布


继续滑动看下一个

Python入门教程15:面向对象编程思想

作者一小红牛 我的Python教程
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存