问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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,静态方法,虽然定义在内部,并且也较方法,但是却不与任何对象联系,与从类访问方法是一样的,他们仍然是函数。
这样看来上面的定义可以改改了:
函数的定义自然不变。
方法的定义可以是这样的,与某个对象进行绑定使用的函数。注意哦。绑定不是指" . "这个符号,这个符号说实在的只有域名的作用。绑定在这里是指,会默认赋值该绑定的对象。
python函数与方法的区别总结

最后,调用的方式不同。(1)函数:通过“函数名()”的方式进行调用。(2)方法:通过“对象.方法名”的方式进行调用。

python方法和函数的区别

最大的区别是参数的传递参数,方法是自动传参self,函数是主动传参

方法和函数有什么区别

方法和函数的区别:1)函数是一段代码,通过名字来进行调用。它能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。所有传递给函数的数据都是显式传递的。函数和对象无关。2)方法也是一段代码,也通过名字来进行调用,但它跟一个对象相关联。方法和函数大致上是相同...

python 语句和函数的区别

def本身是一个函数对象。也可以叫它“方法”。属于对象的函数,就是对象的属性。def定义了一个模块的变量,或者说是类的变量。 python 的函数和其他语言的函数有很大区别。它是可以被其他变量覆盖的,如:

函数和方法 为啥c中叫函数 java中叫方法 那c++呢 注意我问的是为什么...

我们要明白一点,C语言的function和Java语言的function是同一个单词,在英文世界里没有人会区别哪个是“方法”哪个是“函数”。所以翻译成“函数”和“方法”的主要原因是因为最初引入这些编程到大陆的翻译人员的习惯。在Python语言中,在类中的函数常叫做“方法”。以此推测,Java万物皆是类,基本每一个...

python类和函数的区别

一、主体不同 1、类:是面向对象程序设计实现信息封装的基础。2、函数:是指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。二、特点不同 1、类:是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。2、函数...

Golang 中函数和方法的区别

在接触到go之前,我认为函数和方法只是同一个东西的两个名字而已(在我熟悉的c/c++,python,java中没有明显的区别),但是在golang中者完全是两个不同的东西。官方的解释是,方法是包含了接收者的函数。到底什么意思呢。首先函数的格式是固定的,func+函数名+ 参数 + 返回值(可选) + 函数体...

如何理解并正确使用python中的self

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。虽然你可以给这个参数任何名称,但是 强烈建议 你使用self这个名称——其他名称都是不赞成你使用的。

说出内置函数len和字符串方法count的区别?

text = "Hello, World!"print(len(text)) # 输出:13 count()是字符串的一个方法,用于返回字符串中指定子字符串出现的次数。例如:text = "Hello, World!"print(text.count("l")) # 输出:3 可以看出,二者的主要区别在于len()是Python内置函数,可以用于任何序列类型,而count()是字符串...

Python为什么要self

Python要self的理由Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 (显胜于隐 的引发)。Python的类的方法的这个特别的参数指代的是对象本身,而按照Python的惯例,它用self来表示。(当然我们也可以用其他...

php函数和方法的区别 python函数与方法的详细 方法和函数的联系与区别 函数与方法有什么区别呢 函数是不是方法 python类和函数的区别 python中变量和函数的区别 python中函数和类的区别 js方法和函数的区别
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...90千瓦星角起动.60千瓦小容量电机和照明.请问用多大的铝芯线合适... ...星、三角起动,需截面多大的主线和电机负荷线,最好有计公式 梦见有人不断说我是魂古命的人 手相有田字纹代表什么,会越来越富的女人手相 ...旁边有活水流出!同时还梦见一个道士给看手相说过一阵运气就会好,今... 王者荣耀新英雄影如何获得 王者新英雄影怎么获得 说话中气不足锻炼方法 ...里面的油,可以用吸油管子吸出来吗?小车,凯美瑞。不知道有防盗网吗... qq密码忘记我输入现在的qq密码为什么出现以前的qq号呢我想 手机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编程需要用什么软件?