码迷,mamicode.com
首页 > 编程语言 > 详细

python 的__call_方法

时间:2018-07-09 17:13:39      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:导致   http   报错   例子   为我   *args   self   class   code   

在Python中,函数其实是一个对象,所以call方法已是一个对象
,看下面的例子:

class Foo:
    pass

f1=Foo()
print(f1)
f1()

输出的结果为
技术分享图片

从输出的结果来看报错的原因是Foo这个类不能被调用,
从中我们也可以看出来f1是Foo的对象object
就是应为我们没有定义call方法,所以才导致不能被调用,

我们修改下代码

class Foo:
    def __call__(self, *args, **kwargs):
        print(‘这个是call方法‘)

f1=Foo()
print(f1)
f1()

这样就没问题了

技术分享图片

这也说明了f1()调用的是Foo下面的call方法

python 的__call_方法

标签:导致   http   报错   例子   为我   *args   self   class   code   

原文地址:http://blog.51cto.com/853056088/2139321

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!