![](/img/trans.png)
[英]What's the neatest way to get a value from a dictionary and convert to an integer if it exists – in python 3.8?
[英]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.