为了账号安全,请及时绑定邮箱和手机立即绑定

关于实例的调用,__call__()

class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender
    def __call__(self, friend):
        print 'My name is %s...' % self.name
        print 'My friend is %s...' % friend
>>>p = Person('Bob', 'male')
>>>p('Tim')
这里'Tim'为什么一定是把值传给了__call__()中的friend,如果是在上面代码里添加一个和__call__()差不多的需要一个传入参数的方法,那'Tim'又把值传给谁?


正在回答

1 回答

相当于特殊属性,因为如果没有__call__()函数你不可能直接给一个实例传参数,所以说如果能传参数 只能给call 函数  这是一种机制

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

关于实例的调用,__call__()

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信