IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python面向对象——方法总结 -> 正文阅读

[Python知识库]python面向对象——方法总结

方法的概念

??概念:描述一个目标的行为动作。面向对象中我们知道主要包含属性和方法,方法就好比描述一个人怎么吃,怎么喝,怎么玩····
??注意:与函数非常相似,但一个类里面会封装一系列动作,他和函数都可以被调用,执行一系列动作,但与函数的区别调用方式不同,函数写了直接调用,而方法需要先有一个实例化对象,在对象下再调用该方法。
??函数调用方式:

def function():
	print(1)
function()   #直接调用

??方法调用方式:

class cat:
	def function(self):
		print(1)

p = cat()   #先实例化一个对象
p.function()    #在对象下调用方法

几种方法

??根据方法的第一个参数必须要接受的数据类型将方法划分为以下几种:

  • 实例方法:默认第一个参数需要接收到一个实例
  • 类方法:默认第一个参数必须接收到一个类
  • 静态方法:第一个参数啥都不接收

注意:不管哪种类型方法,都是储存在类中,没有在实例当中的;不同类型方法调用方式不同。

class cat:
	def func1(self):
		print("这是一个实例方法", self)

	@classmethod
	def func2(cls):
		print(''这是一个类方法'',  cls)

	@staticmethod
	def func3():
		print("这是一个静态方法")

p = cat()   
p.func1()   #实例方法调用

cat.func2()   #类方法调用,也可cat().func2()
cat.func3()    #静态方法调用

类方法:

类方法源码??从源码上可以看出,类方法有类和实例两种调用方式,实例调用时实例会被忽略,但它的类不会被忽略。注意写类方法时一定要加一个装饰器@classmethod,我们知道装饰器的作用是在保证原本函数不改变的前提下,直接给这个函数添加一些功能。源码中第三行指出该装饰器目的是将一个函数转化为一个类方法

静态方法

??其源码自己去看,这里不再细述。但注意也是两种调用方式。

不同方法使用场景

方法比较

实例方法

??关于方法的选择,要根据不同的问题,自己决定,到底该设计怎样的方法来解决问题。举个小例子,对于一个列表,我们需要对其进行排序操作,我们有以下几种方法:

l = [1, 4, 3, 2]
sorted(l)    #方法一,直接使用函数
list.sort(l)    #方法二,使用类方法,假设list是一个类,sort()是list类的一个类方法
l.sort()    #方法三,使用实例方法

通过比较,发现使用实例方法是最简洁的,因为自动传入了实例这个对象,而类方法需要用类来调用,然后还需要传入实例对象,这样就多了一个参数,故而这种情况下选择实例方法最合适。

类方法

??当我们在实现方法时需要用到类本身时,就要将其设计为类方法。

静态方法

??既不需要在实现时使用实例本身,也不需要使用类,就没必要传递实例和类,所以选用静态方法就更方便了。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 08:04:26  更:2021-11-25 08:05:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:44:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码