Python 从另一个函数引用数组

Python 从另一个函数引用数组,python,arrays,function,Python,Arrays,Function,我有一些带有几个用户定义函数的代码。我希望其中一个函数使用另一个函数的输出,但显然Python不允许我使用下面的代码。Python似乎不喜欢函数2本身中没有定义array1这一事实。有什么建议吗?首先调用函数1,所以我的逻辑是,应该在调用函数2之前定义数组1……但也许我误解了Python的工作原理。(这是实际代码的简化版本,但归结为同一问题) 如果将function1()返回的数组传递到function2(),则以下操作将起作用。另一种可能的方法是将array1声明为全局变量 def funct

我有一些带有几个用户定义函数的代码。我希望其中一个函数使用另一个函数的输出,但显然Python不允许我使用下面的代码。Python似乎不喜欢函数2本身中没有定义array1这一事实。有什么建议吗?首先调用函数1,所以我的逻辑是,应该在调用函数2之前定义数组1……但也许我误解了Python的工作原理。(这是实际代码的简化版本,但归结为同一问题)


如果将
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()