python对象之__call__方法】的更多相关文章

先看示例,然后啥都明白了 class Student(): def __call__(self, *args, **kwargs): print('__call__方法被调用', *args) class Person(): def mm(self): print('mm方法被调用') 测试代码 : from test.student import Student, Person if __name__ == '__main__': student =Student() student('ni…
在Python中,函数其实是一个对象: >>> f = abs >>> f.__name__ 'abs' >>> f(-) 由于 f 可以被调用,所以,f 被称为可调用对象. 所有的函数都是可调用对象. 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__(). 我们把 Person 类变成一个可调用对象: class Person(object): def __init__(self, name, gender): self.n…
__str__ 改变对象的字符串显示.可以理解为使用print函数打印一个对象时,会自动调用对象的__str__方法 class Student: def __init__(self, name, age): self.name = name self.age = age # 定义对象的字符串表示 def __str__(self): return self.name s1 = Student('张三', 24) print(s1) # 会调用s1的__str__方法 __repr__ 在pyt…
1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对象时的初始化方法 __init__()是一个特殊方法(special method).Python有一些特殊方法.Python会特殊的对待它们.特殊方法的特点是名字前后有两个下划线. 如果你在类中定义了__init__()这个方法,创建对象时,Python会自动调用这个方法.这个过程也叫初始化. c…
介绍一下python __call__ 方法的使用 代码如下: #!/usr/bin/env python # -*- coding: utf- -*- ''' __call__方法 普通的类定义的方法,由该类实例化的对象点( . )调用, 如上例中a.common_method(),而__call__方法调用形式, 则是直接实例对象跟( )调用,即a( )形式调用. ''' class A(object): def common_method(self): print 'call common…
任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建.初始化.使用.垃圾回收,不同的阶段由不同的方法(角色)负责执行. 定义一个类时,大家用得最多的就是 __init__ 方法,而 __new__ 和 __call__ 使用得比较少,这篇文章试图帮助大家把这3个方法的正确使用方式和应用场景分别解释一下. 关于 Python 新式类和老式类在这篇文章不做过多讨论,因为老式类是 Python2 中的概念,现在基本没人再会去用老式类,新式类必须显示地继…
python面向对象进阶(下)   item系列 __slots__方法 __next__ 和 __iter__实现迭代器  析构函数 上下文管理协议 元类一.item系列 把对象操作属性模拟成字典的格式.  例如:对象名['key'] = value class Foo: def __init__(self,name): self.name = name def __getitem__(self, item): return self.__dict__[item] def __setitem_…
本文结构: 1.__call__方法 2.callable():判断对象/函数能否被调用 3.举例:斐波那契数列类 1.__call__方法 一个对象实例可以有自己的属性和方法,当我们调用实例方法时,我们用instance.method()来调用. 能不能直接在实例本身上调用呢?在Python中,答案是肯定的. 任何类,只需要定义一个__call__()方法,就可以直接对实例进行调用. 看一个例子: class Student(object): def __init__(self,score):…
在 Python 中提供了__call__ 方法,允许创建可调用的对象(实例).如果类中实现了 __call__ 方法,则可以像使用函数一样使用类. 例如简单的封装一个接口 get/post 方法: import requests class Run(): def __init__(self): pass # __call__ 方法使用 def __call__(self, url, method='post', data = None): if method == "get": re…
在python中,创建类型的时候定义了__call__()方法,那这个类型创建出来的实例就是可调用的.例def如: class A(object): def __init__(self,name,age): self.name=name self.age=age def __call__(self): print("this is __call__ method") a=A('gt',17) a()------>this is __call__ method…