当前位置: 首页 > 后端技术 > Python

python-object-oriented-11-调用方法-可调用对象

时间:2023-03-25 22:48:14 Python

在Python中,定义了__call__方法的对象可以成为“可调用方法”,即函数可以被函数调用(简而言之,就是就是,可以通过括号()的方法调用对象。1__call__()方法1.1__call__()方法未定义):File"/test.py",line8,ins1()TypeError:'Student'objectisnotcallable程序说明:因为Student类中没有__call__()方法,所以是不可调用的,所以程序运行出现错误信息:TypeError:'Student'objectisnotcallable.1.2定义__call__方法classStudent:def__call__(self,*args,**kwargs):"""Definecallmethod"""print("callmethodCalled")s1=Student()s1()运行结果:callmethod被调用程序说明:使用括号调用对象本质上就是调用__call__()方法,所以显示的内容也是__call__()方法内容执行的。2判断可调用对象callable()在python中,可以使用内置方法callable()来判断一个对象是否可调用,并返回一个布尔值。方法定义:defcallable(i_e_,some_kind_of_function):#真正的签名未知;restoredfrom__doc__"""返回对象是否可调用(即某种函数)。请注意,类是可调用的,具有__call__()方法的类的实例也是如此。"""传递示例代码:classClass1:"""空测试类"""classClass2:def__call__(self,*args,**kwargs):"""定义调用方法"""passa1=Class1()print(callable(a1))a2=Class2()print(callable(a2))运行结果:FalseTrue程序说明:由于类Class1中没有定义__call__()方法,所以实例对象a1不可调用,返回结果为False,__call__()方法为在类Class2中定义,因此示例对象a2是可调用的,并且它返回True。备注:更多精彩博客请访问:聂法军技术博客对应视频教程请访问:python400完整markdown笔记请访问:python400_learn_github