我很好奇如何在遵守 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 建议声明多个全局变量的见解或替代方法。
查找文档。 希望有人能解答问题。
使用
global
的唯一选项如您所示。您可以用逗号将它们分开并将它们列在一行上,将它们分别列在单独的行上(使用 global
),或者介于两者之间,例如每行 2 个,用逗号分隔。
有这么多全局变量,这非常尴尬。由于这些全局变量是设置或配置值,因此最好将它们移动到自己的模块中并导入它们:
# settings.py
VAR1 = 1
VAR2 = 2
...
# app.py
import settings
def change():
foo = settings.VAR1
...
您可以使用行继续标记(由行末尾的
\\
字符表示),也可以使用多个全局语句。
这不是经常做的事情,这就是未在
global
和 nonlocal
语句中添加括号支持的原因。