擅长:python、mysql、java
<p>是和否。很明显,它们可以被赋予与方法类似的属性。此外,函数附带已经附加的方法-例如,<code>__call__</code>方法,它与函数一起调用。在</p>
<p>但是,要向对象添加方法,您通常会做什么?子类化对象的类,并添加方法。但是,如果您尝试子类化函数</p>
<pre><code>imports types
class F(types.FunctionType):
pass
</code></pre>
<p>你会得到这个错误</p>
^{pr2}$
<p>如果你想创建一个“可调用”的对象,它可以有方法和使用继承,可以尝试这样的方法。在</p>
<pre><code>class MyCallable(object):
def __init__(self):
self.message = "Look ma, I got called!"
def __call__(self, *args, **kwargs):
self.print_message()
def print_message(self):
print(self.message)
class CallableChild(object):
def __call__(self, *args, **kwargs):
super(CallableChild, self).__call__(*args, **kwargs)
print "...as a child, too!"
</code></pre>