推荐对长变量赋值进行包装

3 投票
3 回答
912 浏览
提问于 2025-04-17 22:31

我在我的 __init__() 方法里有以下的赋值:

self.seat, self.feet, self.backrest, self.stabilizer_bar, self.packaged = False

我想让它符合 PEP8 的规范,但这一行太长了。我考虑过每个赋值用一行,但这样打 False 五次感觉不太符合 Python 的风格。

有什么推荐的方法来换行处理上面的代码吗?

编辑

根据你们的建议,我把 False * 5 改成了 False。但是,我还是想知道怎么换行处理这行代码?

3 个回答

0

在这个特定的情况下,我会把赋值操作一行一行地写出来:

self.seat = False
self.feet = False
self.backrest = False
self.stabilizer_bar = False
self.packaged = False

现在假设你不是用 False,而是有一个函数返回一个元组,我会这样写:

(self.seat, self.feet, self.backrest,
 self.stabilizer_bar, self.packaged) = my_function()

就像在 TrueError的回答 中提到的那样。

0

如果你有一长串的任务要做,为什么不试试这个呢:

def __init__(self):
    for prop in ['seat', 'feet', 'backrest', 'stabilizer_bar', 'packaged']:
        setattr(self, prop, False)
2

试着把左边的部分用括号括起来,然后再进行分割。这样通常能解决问题。

def __init__(self):
    (self.seat, self.feet, self.backrest, 
    self.stabilizer_bar, self.packaged) = False, False, False, False, False

我不知道在实际的生产代码中这样做会有什么效果,不过在PyScripter里快速运行一下是没有错误的。

撰写回答