如何在遵守 PEP8 指南的同时在作用域内声明多个全局变量

问题描述 投票:0回答:2

我很好奇如何在遵守 PEP8 指南的同时声明多个全局变量,该指南建议将每行最多 79 个字符限制。

根据文档中的BNF notation语句定义的全局语句文档,似乎没有内置对多行声明的支持,如下所示:

VAR1 = 0
VAR2 = 0
VAR3 = 0
VAR4 = 0

def change(VAR):
    global (VAR1, VAR2,
           VAR3, VAR4)
    pass

所以,如果我有很多全局变量要声明,我是否必须像这样将它们分成多行?:

def change(VAR):
    global VAR1, VAR2
    global VAR3, VAR4
    pass

我将不胜感激任何根据 PEP8 建议声明多个全局变量的见解或替代方法。

查找文档。 希望有人能解答问题。

python pep8
2个回答
0
投票

使用

global
的唯一选项如您所示。您可以用逗号将它们分开并将它们列在一行上,将它们分别列在单独的行上(使用
global
),或者介于两者之间,例如每行 2 个,用逗号分隔。

有这么多全局变量,这非常尴尬。由于这些全局变量是设置或配置值,因此最好将它们移动到自己的模块中并导入它们:

# settings.py
VAR1 = 1
VAR2 = 2
...
# app.py
import settings

def change():
    foo = settings.VAR1
    ...

0
投票

您可以使用行继续标记(由行末尾的

\\
字符表示),也可以使用多个全局语句。

这不是经常做的事情,这就是未在

global
nonlocal
语句中添加括号支持的原因。

© www.soinside.com 2019 - 2024. All rights reserved.