python - 创建全局变量与在函数之间传递变量
问题描述
我正在遍历一个列表,对于列表中的每一行,我需要调用一个函数来读取该行并对其进行操作。我应该使列表成为全局变量还是应该将每一行传递给不同的函数?
函数 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_
,你可以在定义iterate_over_list
后list_
定义里面的函数。
推荐阅读
- javascript - 如何使用javascript突出显示某一列中具有最小值的表行
- json - Azure ARM 模板 - 在不触发扩展安装的情况下运行 DSC 脚本?
- javascript - 我对如何运行 javascript 代码一无所知
- r - ifelse 在向量的每个元素上
- latex - 如何组合一些期刊论文的乳胶文件并制作一个包含所有具有自己格式的文件?
- python - 忽略 re.sub 命令 python 上的“\n”
- html - matSuffix 使 mat-icon 不在 mat-icon-button 中水平居中
- angular - 动态创建列时的 Ag-grid ExportAsCsv
- python - 解析表
- sorting - 如果 piot 是第一个或最后一个,那么快速排序指针的位置应该是什么?