当前位置 : 主页 > 编程语言 > python >

Python面向对象

来源:互联网 收集:自由互联 发布时间:2022-07-05
Python面向对象 1、面向对象的概念 面向对象是一种编程思维,当前的开发思维主要有两类,一类是面向过程开发,以C语言为代表;另一类就是面向对象开发,Python、java等都是面向对象

Python面向对象

1、面向对象的概念

面向对象是一种编程思维,当前的开发思维主要有两类,一类是面向过程开发,以C语言为代表;另一类就是面向对象开发,Python、java等都是面向对象的代表。面向过程是以事物运行的过程为依据,将事物运行的过程通过计算机语言实现,从而实现计算机对现实世界的模拟运行;面向过程则是对事物运行过程中的每个参与者,将其抽象为一个具体的对象,从而实现程序模拟事务的运行。

2、面向对象的要素

2.1、对象

  • 在Python中,一切皆对象。定义的类是类对象,类的实例是实例对象。

    2.2、实例

  • 类的具体实现,通过实例访问类的方法。

    2.3、类

  • 对现实事物的抽象,比如将人可以定义为一个类,男人也可以定义为一个类。

    2.4、方法

  • 事物的动态属性在程序中的抽象体现,比如吃饭、购物、唱歌等
  • 类具有静态方法、实例方法和类方法

    2.4.1、静态方法

    静态方法通过实例对象和类对象都可以调用,定义时使用装饰器@staticmethod修饰。参数自定义,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法。

    2.4.2、实例方法

    只能通过实例对象调用,定义时第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法。

    2.4.3、类方法

    实例对象和类对象都可以调用类方法,定义时使用装饰器@classmethod修饰。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法。

    # coding:utf-8 # Time:2022/6/28 20:57 # Author:Yang Xiaopeng class person: # 属性 city = "xian" # 类方法 @classmethod def eatting(cls): print("吃饭", end="______eatting______") print(cls.city) # 静态方法 @staticmethod def shopping(): print("购物", end="______shopping______") print() # 实例方法 def Sing(self): print("唱歌", end="______Sing______") print(self.city) print(person.city, person.eatting()) # 通过类访问类属性及类方法 # 吃饭______eatting______xian 第二行:xian None pr1 = person() # 创建类对象, pr1就是person的一个实例 pr1.eatting() # 通过实例访问类方法 # 吃饭______eatting______xian pr1.shopping() # 通过实例访问类的静态方法 # 购物______shopping______ pr1.Sing() # 通过实例访问类的实例方法 # 唱歌______Sing______xian print(pr1.city) # 通过实例访问类的属性 # xian
![在这里插入图片描述](https://s2.51cto.com/images/blog/202207/04214157_62c2ee25c910338819.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ### 2.5、继承 一种联结类的层次模型,并且允许和鼓励类的重用,提供一种明确表达共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),原始类称为新类的基类(父类)。可以说,继承为了重用父类代码,同时为实现多态性做准备。 ```python # coding:utf-8 # Time:2022/6/28 20:57 # Author:Yang Xiaopeng class person: # 属性 city = "xian" # 类方法 @classmethod def eatting(cls): print("吃饭", end="______eatting______") print(cls.city) # 静态方法 @staticmethod def shopping(): print("购物", end="______shopping______") print() # 实例方法 def Sing(self): print("唱歌", end="______Sing______") print(self.city) class student(person): def studying(self): print("学习") print(self.city) # 使用父类的类属性 print(self.eatting()) # 使用父类的类方法 xiaoming = student() print(xiaoming.city) # 通过子类的实例对象访问父类的属性 xiaoming.eatting() # 通过子类的实例对象访问父类的类方法 xiaoming.Sing() # 通过子类的实例对象访问父类的实例方法 xiaoming.shopping() # 通过子类的实例对象访问父类的静态方法 xiaoming.studying() # 子类的实例对象访问子类的静态方法

在这里插入图片描述

2.6、多态

多态指同一个实体同时具有多种形式。同字面意思,及一个对象在不同的情况下会有不同的体现.

2.7、封装

把过程和数据“组装”起来,对数据的读写只能通过自定义的通道(方法、接口)进行操作。

上一篇:【邂逅Django】——(三)视图
下一篇:没有了
网友评论