我有一个代码,我想在其中定义一个类函数内部的类函数。这是我想要做的一个更简单的例子。这个程序的目标是打印 4。
>>> class bluh:
... def haha(self):
... print 3
... def __init__(self):
... def haha(self):
... print 4
...
>>> x = bluh()
>>> x.haha()
3
我应该如何编写这个程序来做我想做的事?
最佳答案
这真的取决于你想做什么。
>>> class Foo(object):
... def haha(self):
... print 3
... def __init__(self):
... def haha():
... print 4
... self.haha = haha
...
>>> a = Foo()
>>> a.haha
<function haha at 0x7f4539e25aa0>
>>> a.haha()
4
在前面的例子中,haha
实际上不是一个方法——它只是一个函数。但它会从闭包中获取对 self
的引用,而且很多时候,这可能就足够了。如果您真的想在实例上使用 monkeypatch/duck punch 新方法,则需要使用 types.MethodType
。参见 here举个例子。
关于python - 在类函数内部定义类函数 : Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14924987/