开学了进入了实验室,需要协助大师兄做事,主要是OpenStack中的代码解析,但是涉及很多python高级用法,一时间有点麻烦,在做项目的同时慢慢更新博客。这次先写一下 call 的用法,因为经常看到它却不知道到底是干嘛的。 通过查阅资料发现 call 实际上是将一个类重载了 ,也就是让一个类也可以像一个函数一样可以拿来调用了,说了也许还是不清晰,直接上例子。 输出结果:This is test ...
2015-09-12 00:41 0 2547 推荐指数:
概念: Python中有一个有趣的语法,只要定义类型的时候,实现__call__函数,这个类型就成为可调用的。换句话说,我们可以把这个类型的对象当作函数来使用,相当于 重载了括号运算符。 示例: 所有的函数都是可调用对象。一个类实例也可以变成一个可调用对象,只需要实现一个特殊 ...
问题引出 一般情况下类方法的调用是通过先创建类对象再通过a.b()的方式来调用,但是如果类中只有一个方法或者一个方法的使用频率非常高,那么就可以为这个方法命名为__call__来简化调用。 __call__ 存在__call__方法的类对象被称为可调用对象,它的作用可以总结 ...
可以把实例对象用类似函数的形式表示,进一步模糊了函数和对象之间的概念 ...
__call__()的用法 __call__()方法能够让类的实例对象,像函数一样被调用; 看a('123')这是函数的调用方法,这里a实际上是类对象 ...
python中一切皆对象,函数也是对象,同时也是可调用对象(callable)。 关于可调用对象,我们平时自定义的函数、内置函数和类都属于可调用对象,但凡是可以把一对括号()应用到某个对象身上都可称之为可调用对象,判断对象是否为可调用对象可以用函数 callable ...
如果python中的一个类定义了 __call__ 方法,那么这个类它的实例就可以作为函数调用,也就是实现了 () 运算符,即可调用对象协议 下面是一个简单的例子: 在本文中不讨论装饰部分的内容,借用装饰器来讲解一个__call__方法的使用,如果需要 ...
__call__是一个很神奇的特性,只要某个类型中有__call__方法,,我们可以把这个类型的对象当作函数来使用。 也许说的比较抽象,举个例子就会明白。 上例中的f对象指向了abs类型,由于f对象中有__call__方法,因此f(-10)实现了对abs(-10)的重载 ...