如何在动态 Python 类型创建期间定义函数
How do you define a function during dynamic Python type creation
(这是在 Python 3 顺便说一句)
好吧,假设我们使用 type()
作为 class 构造函数:
X = type('X', (), {})
我想知道的是 type()
如何接受一个函数作为参数并允许它被调用?
我正在寻找如何实现这一目标的示例。大致如下:
>>> X = type('X', (), {'name':'World', 'greet':print("Hello {0}!".format(name))}
>>> X.greet()
Hello World!
您需要传递函数。在您的代码中,您调用函数并传递结果。
尝试:
def print_hello(self):
print("Hello {0}!".format(self.name))
X = type('X', (), {'name':'World', 'greet': print_hello})
(这是在 Python 3 顺便说一句)
好吧,假设我们使用 type()
作为 class 构造函数:
X = type('X', (), {})
我想知道的是 type()
如何接受一个函数作为参数并允许它被调用?
我正在寻找如何实现这一目标的示例。大致如下:
>>> X = type('X', (), {'name':'World', 'greet':print("Hello {0}!".format(name))}
>>> X.greet()
Hello World!
您需要传递函数。在您的代码中,您调用函数并传递结果。
尝试:
def print_hello(self):
print("Hello {0}!".format(self.name))
X = type('X', (), {'name':'World', 'greet': print_hello})