Python之如何判断是函数还是方法?

来源:千锋教育
发布时间:2023-11-06 18:57:18
分享

看他的调用者是谁,如果是类,就需要传入一个参数self的值,这时他就是一个函数,

如果调用者是对象,就不需要给self传入参数值,这时他就是一个方法

print(isinstance(obj.func,FunctionType))#False

print(isinstance(obj.func,MethodType))#True

classFoo(object):

def__init__(self):

self.name='lcg'

deffunc(self):

print(self.name)

obj=Foo()

print(obj.func)#>

print(Foo.func)#

#------------------------FunctionType,MethodType------------#

fromtypesimportFunctionType,MethodType

obj=Foo()

print(isinstance(obj.func,FunctionType))#False

print(isinstance(obj.func,MethodType))#True

print(isinstance(Foo.func,FunctionType))#True

print(isinstance(Foo.func,MethodType))#False

#------------------------------------------------------------#

obj=Foo()

Foo.func(obj)#lcg

obj=Foo()

obj.func()#lcg

"""

注意:

方法,无需传入self参数

函数,必须手动传入self参数

"""

以上内容为大家介绍了Python之如何判断是函数还是方法?,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python的动态类型 在我们接触的对象中,有一类特殊的对象,是用于存储数据的。常见的该类对象包括各种数字,字符串,表,词典。在C语言中,我们称这样一些数据结构为变量。而在Python中,这些是对象。对象是储存在内存中的实体
  • Python之推导式 推导式:comprehensions(又称解析式),是Python的一种独有特性,相当于语法糖的存在,推导式是可以从一个数据序列构建另一个新的数据序列的结构体。共有三种推导,在Python2和3中都有
  • Python中的inf与nan python中可以用如下方式表示正负无穷>>>float('inf')#正无穷,inf不区分大小写,float('InF')一样可以。inf>>>float('
  • Python中yield的用法详解 首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂
  • Python增强 Python自身的已有的一些功能可以随着标准库的使用而得到增强。1)文字处理Python的string类提供了对字符串进行处理的方法。更进一步,通过标准库中的re包,Python可以用正则表达式(re
  • Python自定义模块导入方法 Python模块是一个Python文件,以.py结尾,包括了Python对象定义和Python语句,能让Python代码段更有逻辑性、更好用、更易懂,既然Python模块有这么多好处,那么该如何引用P