如何在循环中使用导入的函数以及该函数内的循环变量?

阿兹巴克

在 bash 中,我有一个文件“ function.sh”:

_bash_function_() { 
echo $i
   }

和一个文件“ exec.sh

#!/bin/bash

. ./function.sh

range=(1 2 3)

for i in ${range[@]}; do
    _bash_function_
done

这给出了输出:

1
2
3

在python中我有一个文件“ function.py”:

def py_function():
    print (i)

还有一个文件“ exec.py”:

#!/opt/local/bin/python3

from function import *

list = ['1','2','3']

for i in list:
    py_function()

这给出了一个错误:

NameError: name 'i' is not defined

但是,如果我在同一个文件中有函数和循环:

#!/opt/local/bin/python3

def py_function():
    print (i)

list = ['1','2','3']

for i in list:
    py_function()

输出是:

1
2
3

我怎样才能在 Python 中得到这个输出,函数在一个文件中,循环在另一个文件中?

丹尼尔罗斯曼

函数的要点之一是它们接受参数。在您的情况下,您应该定义该函数,以便它接受i作为参数:

def py_function(i):
    print (i)

并在您调用它时传递它:

for i in list:
    py_function(i)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章