优草派  >   Python

Python中的函数和方法有什么不同?函数与方法之间有差异吗?

翟嘉慧            来源:优草派

函数和方法,很多时候我们会将这两个内容混为一谈,那到底是不是这样的呢?如果一样,为什么存在函数或者方法两个名词呢?函数肯定是函数,方法肯定是方法,两者是独立的个体,那我们要怎么区分,或者在什么场景下区分这两个是怎么用呢?下面一起来看看吧。

Python中的函数和方法有什么不同?函数与方法之间有差异吗?

函数和方法的区别:

1、在Python的标准库inspect 中,有两个默认函数为ismethod()和isfunction(),再通过这两个函数就可以用来对方法和函数进行判断,查看它们的具体使用。

2、通常在函数的使用中,里面是包含了一个函数头已经函数体的,并且在参数的支持中可以使用0-n个形参。但是在方法中,也就是Method它是在函数的基础上,添加了一层类的关系,就是这个关系,才能区分函数和方法之间的区别。

3、在概念性上面讲解它们之间的区别在于:通常一个函数是属于FunctionObject的 , 但是在方法中,它又属于PyMethodObject。

简单来看下代码:

def aa(d, na=None, *kasd, **kassd): passclass A(object): def f(self): return 1a = A()
print '#### 方法描述 ####'
print '## 函数 %s' % aa
print '## 类方法 %s' % A.f
print '## 实例方法 %s' % a.f

输出结果:

#### 方法描述 ####
## 函数 <function aa at 0x000000000262AB38>
## 类方法 <unbound method A.f>
## 实例方法 <bound method A.f of <__main__.A object at 0x0000000002633198>>

这篇关于Python中的函数和方法有什么不同?函数与方法之间有差异吗?的文章就分享到这里了,希望文章中的内容可以对大家的学习带来帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。