创建全局变量与在函数之间传递变量

Creating a global variable versus passing the variable between functions

我正在遍历一个列表,对于列表中的每一行,我需要调用一个函数来读取该行并对其进行操作。我应该将列表设为全局变量还是应该将每一行传递给不同的函数?

函数 a、b、c 不修改列表的行,它们只是读取值并做出一些决定。

选项A

def iterate_over_list():
    list_ = [ 1,2,3 ]
    for each_row in list_:
        func_a(each_row)
        func_b(each_row)
        func_c(each_row)

def func_a(each_row):
    read_the_row__value_and_make_a_decision

def func_b(each_row):
    read_the_row__value_and_make_a_decision

def func_c(each_row):
    read_the_row__value_and_make_a_decision

选项 B

global list_

def iterate_over_list():
    list_ = [ 1,2,3 ]
    for each_row in list_:
        func_a()
        func_b()
        func_c()

def func_a():
    read_the_row__value_and_make_a_decision

def func_b():
    read_the_row__value_and_make_a_decision

def func_c():
    read_the_row__value_and_make_a_decision

正如@S3DEV 指出的那样,您应该避免使用全局变量,除非 严格 必要。

假设我没听错,并且每个函数只需要访问行,而不是整个列表,则选项 A 是首选。

如果希望每个函数都可以访问list_,可以在定义list_后定义iterate_over_list里面的函数