首页

文章

python 方法和函数的区别

发布网友 发布时间:2022-03-03 13:44

我来回答

1个回答

热心网友 时间:2022-03-03 15:14

在Python中,对这两个东西有明确的规定:
函数function —— A series of statements which returns some value to a caller. It can also be passed zero or more arguments which may be used in the execution of the body.

方法method —— A function which is defined inside a class body. If called as an attribute of an instance of that class, the method will get the instance object as its first argument (which is usually called self).
从定义的角度上看,我们知道函数(function)就相当于一个数学公式,它理论上不与其它东西关系,它只需要相关的参数就可以。所以普通的在mole中定义的称谓函数是很有道理的。
那么方法的意思就很明确了,它是与某个对象相互关联的,也就是说它的实现与某个对象有关联关系。这就是方法。虽然它的定义方式和函数是一样的。也就是说,在Class定义的函数就是方法。
从上面的角度看似乎很有道理。

>>> def fun():
pass
>>> type(fun)
<class 'function'> #没有问题

>>> class Cla():
def fun():
pass
@classmethod
def fun1(cls):
pass
@staticmethod
def fun2():
pass
>>> i=Cla()
>>> Cla.fun.__class__
<class 'function'> #为什么还是函数
>>> i.fun.__class__ #这个还像话
<class 'method'>
>>> type(Cla.fun1)
<class 'method'>   #这里又是方法
>>> type(i.fun1)
<class 'method'>    #这里仍然是方法
>>> type(Cla.fun2)
<class 'function'>   #这里却是函数
>>> type(i.fun2)
<class 'function'>    #这里却是函数
事实上,上面的结果是可以解释的:
1,普通方法(老版中直接就是"instancemethod")在mole中与在Class中定义的普通函数,从其本身而言是没有什么区别的,他们都是对象函数属性。 之所以会被说在Class中的定义的函数被称为方法,是因为它本来就是面向将来的实例对象的,其实他们就是实例方法,这些方法是与实例相联系的(从实例出发访问该函数会自动赋值)。所以你从Class访问仍然是一个函数
2,类方法("classmethod"),因为类同样是对象,所以如果函数与类进行联系了话(与实例方法一样的模式)那么就能够这么说了!
3,静态方法,虽然定义在内部,并且也较方法,但是却不与任何对象联系,与从类访问方法是一样的,他们仍然是函数。
这样看来上面的定义可以改改了:
函数的定义自然不变。
方法的定义可以是这样的,与某个对象进行绑定使用的函数。注意哦。绑定不是指" . "这个符号,这个符号说实在的只有域名的作用。绑定在这里是指,会默认赋值该绑定的对象。
如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 嘴唇上有黑印用蜜蜡和棉线去除了胡须 软柿子的热量 孕妇可以吃软柿子吗不是西红柿 脆柿子和软柿子的区别 脆柿子好还是软柿子好 软柿子可以多吃吗 “鱼悬洁白振清风”的出处是哪里 用大自然的声音评课好吗? 妇产科博士找超声科工作容易吗 怎能把微信6.2.0版本换回6.1.2版 微信群6.2.4怎么增加人数上限 微信6.2.2如何备份手机通讯录 电脑桌面图标不能放大? 有什么好用的识图软件 识图认人哪个软件最好 手机识图软件什么软件能识别图片位置 小米手机自动锁屏时间怎么修改 小米手机屏幕锁定时间设置教程 能举起100斤算大力吗 中医美容专业是什么 中医美容证有什么用 单声道音频什么意思(开启单声道音频有什么好处) 单声道音频是什么,有什么用处? 户口还未迁移到婆家 娘家户口怎么就没了呢 我结婚没有迁户口,现在娘家也没有怎么办 没领证生的孩子一般会判给谁 没领证生的孩子会判给谁 信用卡卡种有哪些 找一首古风歌曲 男声 低配电脑装w10还是w7流畅 电脑配置低装win7还是win10好 低配电脑适合装WIN7系统还是WIN10系统? ...500s-15isk这个联想笔记本的内存条尺寸是什么型号的有没有知道的... 越快越好.怎样减肥.而且胸部不缩水 请问徐闻县海安长途汽车客运站客服是多少? 过了平台期还会瘦吗 悦耳的意思悦耳的解释 重庆师范大学应用心理学专业的权威性如何? 打印机laserjetm1136mfp怎样设置无线打印 经典电影赏析之1:《精武英雄》 爆米花用的什么玉米 糯玉米哪个好 有机糯玉米的营养价值如何? 四大直辖市换帅原因 四大直辖市换帅为啥 手机qq好友怎么拉黑对方 python中方法和函数的区别是什么?什么时候要带self? Python的函数都有哪些? python中定义函数的关键字是什么? 我怎么批量删除QQ里的好友啊!!! Python中的函数解释 Python之什么是函数 怎么批量删除QQ中的好友 python里函数的定义 电脑不停自动安装软件怎么办? 电脑自己下载软件怎么办 安卓手机的通讯录怎么导入苹果 电脑为什么自动下载软件怎么办 安卓手机的通讯录怎么导入苹果手机 电脑自己下载乱七八糟的软件怎么办 电脑自动下载安装软件怎么办 安卓手机上的通讯录怎么导入苹果手机 电脑自己会下载一些软件怎么办 安卓手机如何将通讯录导入苹果手机 怎么解决电脑自己下载软件 python中**是什么意思? 怎么把excel复制到word中的网格线删除? excel中的内容复制到word上带的网格线如何消除 java开发和web开发的区别 在电子表格中输入的东西,复制到word中如何去掉网格线? java和web的区别,各是什么意思? 从EXCEL表格粘贴至word中,如何除去word显示的灰色网格线?? 每次复制excel表格到word后,总是挪位,还有网格线怎么删掉 怎么把从EXCEL中复制到WORD文档表格中的虚线去掉 如何把EXCEL 中的表格复制到WORD 中后不显示网格线 家庭吊扇开关怎么接线 word 表格怎么去除网格线 带有灯泡的吊扇如何接线? 在word中如何去除网格线? 刚刚买的美的吊扇,谁知道怎么接线?不会的,别忽悠我,有师傅在的帮我看看,怎么接,具体点,最好能帮我 夏至代表什么寓意 夏至美好寓意 “夏至”是什么意思? python编程开发软件有哪些? Python编程需要用什么软件?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com