如何使用或访问函数中的列表到另一个函数?

2024-06-26 01:32:53 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个功能:

lst = []
def function1(request):
    lst = ['12','10']
    return HttpResponse(...)

def function2(request):
    qry = SampleModel.objects.filter(id__in=lst)
    return HttpResponse(...)

Tags: in功能idreturnobjectsrequestdeffilter
2条回答

使用global。以下是一个示例:

lst = [2,3]
def function1():
    global lst  # Guide lst to the global list that is already available
    print('lst = {}'.format(lst))
    lst = ['12','10']

print('lst = {}'.format(lst))
function1()
print('lst = {}'.format(lst))

您将看到以下输出:

lst = [2, 3]
lst = [2, 3]
lst = ['12', '10']

检查第一个示例。

global lst
lst=[]
def function1():

    lst.append(6)
    print(lst)

def function2():
    lst.append(7)
    print(lst)

function1()
function2()

输出:-

C:\Python34\python.exe "C:/Users/akthakur/PycharmProjects/Learning python/testing.py"
[6]
[6, 7]

在这里,lst被声明为global,并在函数1中使用,在函数2中使用时,使用相同的lst,因此输出。你知道吗

第二个示例

global lst
lst=[]
def function1():
    lst=[7,8]
    lst.append(6)
    print(lst)

def function2():
    lst.append(7)
    print(lst)

function1()
function2()

输出

C:\Python34\python.exe "C:/Users/akthakur/PycharmProjects/Learning python/testing.py"
[7, 8, 6]
[7]

现在,正如您在function1lst=[7,8]中定义的那样,这将创建一个新的本地列表lst,在function1中使用了相同的列表(本地版本),在function2中,当您再次调用lst时,将调用其全局版本。[这就是您要做的。]

因此,与其将新的本地列表声明为lst=['12','10'],不如将值附加到函数外部定义的现有列表中,并将其声明为global。你知道吗

相关问题 更多 >