gpt4 book ai didi

python - 动态创建字典并自动分配函数评估中的属性

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

我正在使用具有以下外观的代码:

模块.py:

def attribute3():
return "something3"


def attribute2():
return "something2"


def attribute1():
return "something1"

.py:

from module import attribute1, attribute2, attribute3


def main():
return {
"attribute1": attribute1(),
"attribute2": attribute2(),
"attribute3": attribute3()
}

print main()

我想知道是否有更好的方法在 main 函数中创建字典,而无需执行 "attribute: function()" 。我感觉自己在重复自己。

我无权访问 module.py 代码,因此无法更改为类。

我使用 Python 2.5,因为这是一个遗留软件。

谢谢。

最佳答案

您可以使用getattr并调用返回的任意函数。

import some_module

def create_dict(module, names):
resp = {}
for name in names: # Iterate over an arbitrary number of arguments
# Get the function with the name provided and call it,
# setting the response as the value for the name
resp[name] = getattr(module, name)()
return resp

print create_dict(some_module, ['attribute1', 'attribute2', 'attribute3'])

我没有在 Python 2.5 上对此进行测试,但我没有看到它不起作用的任何原因。

关于python - 动态创建字典并自动分配函数评估中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41812274/

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