python之禅应用于类中的方法

问题描述

蟒蛇之禅告诉我们: 应该只有一种明显的方法来做到这一点。

当涉及到以下情况时,这很难付诸实践。

一个类接收一个文档列表。 输出是每个文档的字典,其中包含各种键/值对。 每对依赖于先前计算的一个或什至来自列表的其他字典的其他值/对。

这是此类类的一个非常简化的示例。

“明显”的方法是什么?每个方法都会向每个字典添加一个值/对。

class T():
    
    def __init__(self,mylist):
        #build list of dicts
        self.J = [{str(i):mylist[i]} for i in range(len(mylist))]
        # enhancement 1: upper
        self.method1()
        # enhancement 2: lower
        self.J = self.static2(self.J)

    def method1(self):
        newdict = []
        for i,mydict in enumerate(self.J):
            mydict['up'] = mydict[str(i)].upper()
            newdict.append(mydict)
        self.J = newdict
    
    @staticmethod
    def static2(alist):
        J = []
        for i,mydict in enumerate(alist):
            mydict['down'] = mydict[str(i)].lower()
            J.append(mydict)
        return J
    
    @property
    def propmethod(self):
        J = []
        for i,mydict in enumerate(self.J):
            mydict['prop'] = mydict[str(i)].title()
            J.append(mydict)
        return J
        
    # more methods extrating info out of every doc in the list
    # ...

self.method1() 是简单的运行并且一个新的键/值对被添加到每个字典中。 也可以使用静态方法2。 还有财产。

在我释放@property 的三种方式中,因为我没有添加另一个属性。 你会从另外两个中选择哪一个?

请记住,类将由数十个这样的 Methode 组成,因此不添加属性。仅更新(添加基因对值)列表中的字典。

我看不出method1和static2的区别。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...