2024-06-26 01:32:53 发布
网友
假设我有两个功能:
lst = [] def function1(request): lst = ['12','10'] return HttpResponse(...) def function2(request): qry = SampleModel.objects.filter(id__in=lst) return HttpResponse(...)
使用global。以下是一个示例:
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。你知道吗
使用
global
。以下是一个示例:您将看到以下输出:
检查第一个示例。
输出:-
在这里,lst被声明为global,并在函数1中使用,在函数2中使用时,使用相同的lst,因此输出。你知道吗
第二个示例
输出
现在,正如您在function1lst=[7,8]中定义的那样,这将创建一个新的本地列表lst,在function1中使用了相同的列表(本地版本),在function2中,当您再次调用lst时,将调用其全局版本。[这就是您要做的。]
因此,与其将新的本地列表声明为lst=['12','10'],不如将值附加到函数外部定义的现有列表中,并将其声明为global。你知道吗
相关问题 更多 >
编程相关推荐