Python 从另一个函数引用数组
我有一些带有几个用户定义函数的代码。我希望其中一个函数使用另一个函数的输出,但显然Python不允许我使用下面的代码。Python似乎不喜欢函数2本身中没有定义array1这一事实。有什么建议吗?首先调用函数1,所以我的逻辑是,应该在调用函数2之前定义数组1……但也许我误解了Python的工作原理。(这是实际代码的简化版本,但归结为同一问题)Python 从另一个函数引用数组,python,arrays,function,Python,Arrays,Function,我有一些带有几个用户定义函数的代码。我希望其中一个函数使用另一个函数的输出,但显然Python不允许我使用下面的代码。Python似乎不喜欢函数2本身中没有定义array1这一事实。有什么建议吗?首先调用函数1,所以我的逻辑是,应该在调用函数2之前定义数组1……但也许我误解了Python的工作原理。(这是实际代码的简化版本,但归结为同一问题) 如果将function1()返回的数组传递到function2(),则以下操作将起作用。另一种可能的方法是将array1声明为全局变量 def funct
如果将
function1()
返回的数组传递到function2()
,则以下操作将起作用。另一种可能的方法是将array1
声明为全局变量
def function1():
some_input=1
some_other_input=2
array1=[]
array1.append(some_input)
array1.append(some_other_input)
return array1
def function2(arr):
for i in range(len(arr)):
print(arr[i])
arr = function1()
function2(arr)
可能的执行情况如下:
def function1():
some_input=1
some_other_input=2
array1=[]
array1.append(some_input)
array1.append(some_other_input)
return array1
def function2(array):
for i in range(len(array)):
print(array[i])
array = function1()
function2(array)
python搜索变量时遵循LEGB规则 所以它会先在本地搜索,然后在附件中搜索,然后在全局搜索,最后在内置中搜索,所以要使列表(数组)可访问,您需要将其设置为全局 方法1 在function1中创建并将其传递给function2
def func1():
arr=[]
arr.append(1)
return arr
def func2(arr):
arr.append(2)
print(arr)
arr = func1()
func2(arr)
方法2
将您的列表设置为全局,并使用“全局”关键字访问该列表
使用array1作为函数1的输出,然后将其作为参数发送并在函数2中使用如何?您需要查看
return
,将参数传递给函数,并将返回值分配给名称。所有这些都将在函数的入门教程中介绍。
def func1():
arr=[]
arr.append(1)
return arr
def func2(arr):
arr.append(2)
print(arr)
arr = func1()
func2(arr)
arr = []
def func1():
global arr
arr.append(1)
def func2():
global arr
arr.append(2)
print(arr)
func1()
func2()