python - 在类函数内部定义类函数 : Python

标签 python class nested

我有一个代码,我想在其中定义一个类函数内部的类函数。这是我想要做的一个更简单的例子。这个程序的目标是打印 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/

相关文章:

c++ - 在头文件中引用 ADT

android - 在已创建父 fragment View 后添加嵌套 fragment

python - 使用 babel、django 和 jinja2 提供 i18n js 服务

Python:如何将用户输入添加到列表中?

python - 平均提取的数字 block

java - Jaws Wordnet 的编译问题

java - 从 SurfaceView 创建类时出错,该类将作为线程运行

python - 在 django 模板中呈现 HTML(不是 unicode 而是 ASCII)

javascript - 将平面数组减少为 2 层嵌套 json 对象数组

javascript - 嵌套的 JSON 调用给出 : Uncaught SyntaxError: Missing } in template expression