大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

python的函数和方法 python 的函数

Python 里面的 函数 和 方法 怎么区分

在python里,函数在很多时候就叫方法,比如在类里面定义函数,其实就是类的方法。

十载的沈丘网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整沈丘建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“沈丘网站设计”,“沈丘网站推广”以来,每个客户项目都认真落实执行。

还有自定义函数,其实也可以称做自定义方法。

不用太在意称呼,没什么区别,你知道别人说方法其实就是函数就行。反之亦然python

里面的

函数

方法

怎么区分

python 方法和函数的区别

在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)就相当于一个数学公式,它理论上不与其它东西关系,它只需要相关的参数就可以。所以普通的在module中定义的称谓函数是很有道理的。

那么方法的意思就很明确了,它是与某个对象相互关联的,也就是说它的实现与某个对象有关联关系。这就是方法。虽然它的定义方式和函数是一样的。也就是说,在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")在module中与在Class中定义的普通函数,从其本身而言是没有什么区别的,他们都是对象函数属性。 之所以会被说在Class中的定义的函数被称为方法,是因为它本来就是面向将来的实例对象的,其实他们就是实例方法,这些方法是与实例相联系的(从实例出发访问该函数会自动赋值)。所以你从Class访问仍然是一个函数

2,类方法("classmethod"),因为类同样是对象,所以如果函数与类进行联系了话(与实例方法一样的模式)那么就能够这么说了!

3,静态方法,虽然定义在内部,并且也较方法,但是却不与任何对象联系,与从类访问方法是一样的,他们仍然是函数。

这样看来上面的定义可以改改了:

函数的定义自然不变。

方法的定义可以是这样的,与某个对象进行绑定使用的函数。注意哦。绑定不是指" . "这个符号,这个符号说实在的只有域名的作用。绑定在这里是指,会默认赋值该绑定的对象。

python方法和函数的区别

这只是在 python3 中才有的区分,python2 中全部称为方法。

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


分享标题:python的函数和方法 python 的函数
链接分享:http://dzwzjz.com/article/dogecpi.html
在线咨询
服务热线
服务热线:028-86922220
TOP