微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用其他类动态更改类初始化的最佳方法是什么?

如何解决使用其他类动态更改类初始化的最佳方法是什么?

我想根据我的输入参数之一更改在我的类中处理实例变量的方式。

以下是我正在尝试做的事情:

from helpers import Helper1,Helper2

class MainClass:
    def __init__(self,var1,var2,category):
        self.var1 = var1
        self.var2 = var2
        self.helperType = self._get_helper(category)

        # from here I need helperType to define how var1 and var2 are processed further

    def _get_helper(self,category):
        if category == 'type1':
            return Helper1()
        elif category == 'type2':
            return Helper2()

我计划不断添加更多帮助程序类型来处理稍微不同的情况,并且更愿意将它们的逻辑分开,而不是使用每个实例的自定义代码来膨胀我的 MainClass。例如,var1 始终是字符串,某些类型可能需要将其反转,其他类型可能需要大写。

在其他地方,我希望能够创建基于 MainClass 参数动态设置其属性category 实例,但内部发生的事情的细节无关紧要,所以我试图包含它在MainClass

我相信我可以通过多种方式完成这项工作,但我的想法似乎都不是特别干净或可靠。我已经研究了一些潜在的选项,例如猴子修补、继承和类装饰器,但我不确定它们是否符合我的需求。

很高兴被告知这是一种愚蠢的方法,只要附有解决方案即可。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。