gpt4 book ai didi

python - 动态声明类内的方法

转载 作者:行者123 更新时间:2023-12-01 05:14:58 25 4
gpt4 key购买 nike

我试图在类内动态声明一个方法。例如:

class Foo (object):
def __init__ (self):
super(Foo, self).__init__()
dict_reference = {a:1, b:2, c:3}
# This will add atributes a,b and c ...
self.__dict__.update(dict_reference)
# ... but I want methods instead, like self.a() return 1
d = {}
for k in dict_reference.keys():
exec "def {method_name}(): return {data}".format(method_name=k, data=dict_reference[k]) in d
del d['__builtins__']
self.__dict__.update(d)
# That's the only solution I found so far ...

还有其他解决方案吗?

干杯

最佳答案

方法是对象,就像 Python 中的任何其他值一样:

class Foo(object):
def __init__(self, a, b, c):
self.a = lambda: a
# or
def b_():
return b
self.b = b_

关于python - 动态声明类内的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23407393/

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