Python中面向对象编程(OOP)的概述

本文详细介绍了Python的面向对象编程,包括面向对象的概念、特点、核心概念(类和对象)、常用方法(如self、初始化、str、__del__等),以及封装、继承和多态三大特性。此外,还探讨了新式类与旧式类的区别,类属性、类方法、静态方法,并介绍了单例设计模式。
摘要由CSDN通过智能技术生成

一.面向对象概述

面向对象编程:Object Oriented Programming(简称OOP)

1、面向对象的概念

<1>面向对象侧重于由谁来做这件事,相比较函数,面向对象是一个更大的封装,根据职责在一个“类”中封装多个“方法”。
<2>完成某一个需求前,首先确定要做的事(这些事就是“方法”)
<3>根据职责确定不同的“对象”,在“对象”内部封装不同的“方法”(多个)
<4>最后完成代码,就是顺序的让不同的“对象”调用不同的“方法”

2、面向对象的特点

<1>注重对象和职责,不同的对象承担的职责不同
<2>更加适合复杂的需求变化
<3>需要在面向过程的基础上,学一些面向对象的语法

3、补充:面向过程的概念

<1>侧重于怎么做这件事
<2>把完成某一个需求的所有步骤从头到尾逐步实现
<3>根据开发要求,将某些功能独立的代码封装成一个又一个函数
<4>最后完成代码,就是顺序的调用不同的函数

二.面向对象的核心概念

面向对象有两个核心概念,一个是,一个是对象

1、

(1)什么是类

“类”是一类具有相同特征或行为的事物的一个统称。
比如各种人都属于“人”,各种品种的猫都属于“猫”,各种动物都属于“动物”等。

(2)类由什么构成

理解举例:马冬梅今年19岁,身高170cm,鞋码38,喜欢早上吃包子,喜欢跑步。

<1>属性

属性是这一类事务的共同信息,特征之类。
如例句中:
姓名:马冬梅
年龄:19岁
身高:170cm
鞋码:38
姓名、年龄、身高、鞋码等信息就属于每个人都有的共同信息,每个人都自然带有的信息。

<2>方法

方法是对象具有的行为,就是对象可以去做的事情。
如例句中:
吃包子
跑步
这些就是对象可以去做的事,对象可以选择做或者不做,不同的对象有不同的选择,不是每一个对象都要选择去做。

2、对象

“对象”是由类创建出来的一个具体的存在。
比如我将A加入至“猫”类,A就是属于“猫”类的一个具体的存在,有“猫”类所有的属性,可以使用“猫”类所有的方法。

三.面向对象编程常用方法

1、self的含义

哪一个对象调用的方法,self就是哪一个对象的引用(self指向该对象的内存地址空间),
在调用方法的时候,程序员就不需要传递self参数(在定义方法的时候,第一个参数必须是self,不可更改)

2、定义一个类(此处举的例子为鱼)

# class Fish:
#     def eat(self):
#         print("鱼是要吃东西的,不然就死了")
#     def sleep(self):
#         print("鱼当然也是要睡觉的,不然也死了")
#
# nimo=Fish()
# print(nimo)
# #<__main__.Fish object at 0x7f37c335e400>
# nimo.eat()

#### 运行结果
# #鱼是要吃东西的,不然就死了
# nimo.sleep()
# #鱼当然也是要睡觉的,不然也死了

# class Fish:
#     def eat(self):
#         print("鱼%s是要吃东西的,不然就死了" %(self.name))
#     def sleep(self):
#         print("鱼%s当然也是要睡觉的,不然也死了" %(self.name))
#
# nimo=Fish()
# nimo.name='nimo'
# nimo.eat()

#### 运行结果
# #鱼nimo是要吃东西的,不然就死了
# aa=Fish()
# aa.name='lala'
# aa.sleep()
# #鱼lala当然也是要睡觉的,不然也死了

3、初始化方法:

类名() 就可以创建一个对象
类名() 创建对象的时候,python解释器会执行哪些操作
# class Fish:
#     def __init__(self, name):
#         print("这是一个初始化的方法")
#         self.name = name
#
#     def eat(self):
#         print("鱼%s是要吃东西的,不然就死了" % (self.name))
#
#     def sleep(self):
#         print("鱼%s当然也是要睡觉的,不然也死了" % (self.name))

#### 运行结果
# nimo = Fish('abc')
# nimo.eat()
# # 这是一个初始化的方法
# # 鱼abc是要吃东西的,不然就死了

4、str

str:在python中,使用print输出对象变量的时候,默认情况下这个变量引用的对象是由那一个类创建的对象及其在内存中的地址
如果在开发中希望使用print输出变量的时候能够打印自定义内容,就可以利用__str__这个内置的方法
# class Fish:
#     d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值