gpt4 book ai didi

python - Python 中的优雅反射?

转载 作者:太空宇宙 更新时间:2023-11-04 06:05:52 24 4
gpt4 key购买 nike

我有少量不同的 Python 类(每个类代表一种不同的策略)和它们的大量配置(例如参数)。目前我已经将配置组织在 json 文件中,它可能看起来像这样:

{
"script": "xyz.strategy.strategyA",
"datafile": "//datasrv10//data$//data//bloom.csv",
"assets": ["B EQUITY","A EQUITY"],
...
}

因此,我必须使用某种反射来初始化正确的类。为此,我找到了 importlib。我设法导入了模块。现在每个脚本都是它自己的模块,每个模块都有一个具有相同接口(interface)的构建函数:

def build(configuration, data):
return Risk(configuration, data)


class Risk(Strategy):

在我看来,所有这些都像是糟糕的老式 Java。任何人都可以用 Python 向我展示 light 吗?

最佳答案

如果您需要为此设置进行某种配置,则没有 Elixir 。您可以使用 json、yaml 或关系数据库来存储配置。允许将 python 代码用于配置可能会带来一些改进,但如果可以在外部提供配置,这会产生安全问题。

第二步是将配置转换为实际的 Python 类实例,分配正确的参数等。importlib 非常适合此目的,这里没有太多需要改进的地方。您的类需要某种工厂,只是尽量不要抽象太多(这很像 Java 而不是 pythonic),也许是一种能够仅基于配置片段创建对象的全局方法?

关于python - Python 中的优雅反射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126602/

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