pythonの_call__
717 ワード
通常、関数を呼び出すときに「関数名(パラメータ)」;クラスのメソッドを呼び出す必要がある場合は、クラスのインスタンスから呼び出される「クラス名.メソッド名(canshu)」です.クラスメソッドを呼び出すときに「インスタンス名(パラメータ)」を実装したいのですが、実装できますか?call__方法は私たちにこの効果を実現することができます.
上記コードでは、call__()特別な方法ではありません.普段なら呼び出したいです.call__()メソッドは、p._call__()にアクセスできます.インスタンスを呼び出すだけでp('yjy')
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('admin', 'male')
print p.name, p.gender
p('yjy')
==> admin male
==> My name is admin...
==> My friend is yjy...
上記コードでは、call__()特別な方法ではありません.普段なら呼び出したいです.call__()メソッドは、p._call__()にアクセスできます.インスタンスを呼び出すだけでp('yjy')