创建全局变量与在函数之间传递变量
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
里面的函数
我正在遍历一个列表,对于列表中的每一行,我需要调用一个函数来读取该行并对其进行操作。我应该将列表设为全局变量还是应该将每一行传递给不同的函数?
函数 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
里面的函数