在Python中编写作业的最佳方法是什么?

时间:2014-04-26 15:46:21

标签: python

我的代码中有很多这类东西;他们使文件超长且无聊。有没有一种很好的方法来缩短它?

def __init__(self):
  self.g = []
  self.t = []
  self.d = []
  self.fft = []
  self.freq = []

4 个答案:

答案 0 :(得分:4)

一些选项:

    def __init__(self):
        for att in ('g','t','d','fft','freq'):
            setattr(self,att,[])

def __init__(self):
    attrs = ('g','t','d','fft','freq')
    self.__dict__.update(zip(attrs,([] for _ in range(len(attrs)))))
但老实说?显式方法很好。我认为当你有一些笨重的属性(可能超过10个)时,这种方法会变得更好,但在这种情况下,我会重新检查你是否可以将它们中的一些打包成自己的集合。

答案 1 :(得分:2)

嗯,你也可以这样做:

def __init__(self):
  self.g, self.t, self.d, self.fft, self.freq = [], [], [], [], []

这个更短但我不确定它真的更好......

答案 2 :(得分:0)

你可以这样做:

def __init__(self):
    attr_names = ['g', 't', 'd', 'fft', 'freq']
    for attr_name in attr_names:
        setattr(self, attr_name, [])

但是如果以这种方式设置对象属性,代码将太动态,如果使用IDE或其他静态分析器,则无法提供良好的结果。

答案 3 :(得分:0)

使用this模块

$ python -m this|grep Readability
Readability counts

您的代码片段似乎是我做您需要的最佳方式。