2024-04-19 15:04:28 发布
网友
例如,我需要类调用返回字符串。在
class Foo(object): def __init__(self): self.bar = 'bar' def __call__(self): return self.bar
Foo调用返回Foo object。在
Foo
Foo object
我该如何处理返回字符串或其他类?如何使用__call__?在
__call__
对于您的示例(用处有限),您有一个可调用对象类。在
你现在可以做了,就像你做的那样
>>> o = Foo() >>> o <__main__.Foo object at 0x8ff6a8c> >>> o() 'bar'
也就是说,__call__()并不能使你的类可调用(因为它已经存在),但它给你一个可调用的对象。在
__call__()
在Python中,一切都是一个对象。偶数类。在
此外,类是可调用的对象。你不需要做任何事情来实现这一点,他们就是这样。调用类将创建一个实例。在
设置__call__方法使实例也可调用。调用实例的方式与调用类(或任何其他函数)的方式相同。在
In [1]: class A: ...: def __init__(self): ...: print "init" ...: ...: def __call__(self): ...: print "call" ...: ...: In [2]: a = A() init In [3]: a() call
对于您的示例(用处有限),您有一个可调用对象类。在
你现在可以做了,就像你做的那样
也就是说,
__call__()
并不能使你的类可调用(因为它已经存在),但它给你一个可调用的对象。在在Python中,一切都是一个对象。偶数类。在
此外,类是可调用的对象。你不需要做任何事情来实现这一点,他们就是这样。调用类将创建一个实例。在
设置
__call__
方法使实例也可调用。调用实例的方式与调用类(或任何其他函数)的方式相同。在相关问题 更多 >
编程相关推荐