gpt4 book ai didi

python - 我如何找到元方法的名称?

转载 作者:太空宇宙 更新时间:2023-11-04 08:13:43 25 4
gpt4 key购买 nike

考虑以下示例:

import types

methods = ['foo', 'bar']

def metaMethod(self):
print "method", "<name>"

class Egg:
def __init__(self):
for m in methods:
self.__dict__[m] = types.MethodType(metaMethod, self)

e = Egg()
e.foo()
e.bar()

我应该写什么而不是 "<name>" , 所以输出为

method foo
method bar

最佳答案

您必须以某种方式传递该参数,那么为什么不让 metaMethod 返回一个知道要打印什么的函数,而不是直接打印呢? (我敢肯定还有更多方法可以做到这一点,这只是一种可能性。)

import types

methods = ['foo', 'bar']

def metaMethod(self, m):
def f(self):
print "method", m
return f

class Egg:
def __init__(self):
for m in methods:
self.__dict__[m] = types.MethodType(metaMethod(self, m), self)

e = Egg()
e.foo()
e.bar()

运行这个脚本输出

method foo
method bar

关于python - 我如何找到元方法的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17994123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com