热门搜索 :
考研考公
您的当前位置:首页正文

Python__call__方法

来源:东饰资讯网

可以调用的对象

Python中一切皆对象

函数也是一个对象

>>> def fn():
    pass
>>> fn
<function fn at 0x03871C00>
>>> fn()
>>> 
  • 上面我们看到,后面加上括号可以直接调用,我们称之后可调用对象。

  • object类没有__call__方法,所以大部分直接继承object类的类所产生的对象不能被调用。(type类虽然也继承了object类,但是其实现了该方法)

自定义该类型的类

这种类型的类适用于实例经常改变状态

class Entity:
'''调用实体来改变实体的位置。'''

def __init__(self, size, x, y):
    self.x, self.y = x, y
    self.size = size

def __call__(self, x, y):
    '''改变实体的位置'''
    self.x, self.y = x, y
Top