繁体   English   中英

用Python编写作业的最简洁的方法是什么?

[英]What's the neatest way of writing assignments in Python?

我的代码中有很多这类的东西。 它们使文件变得又长又无聊。 有缩短它的好方法吗?

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

一些选项:

    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多个)时,这种方法会变得更好,但是在那种情况下,我将重新检查是否可以将其中的一些属性打包到自己的集合中。

好了,您也可以:

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

短一点,但我不确定那真的更好...

你可以这样做:

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

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

使用this模块

$ python -m this|grep Readability
Readability counts

在我看来,您的代码段似乎是最简洁的方法来完成您需要的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM