假设我有这两个功能:
lst = []
def function1(request):
lst = ['12','10']
return HttpResponse(...)
def function2(request):
qry = SampleModel.objects.filter(id__in=lst)
return HttpResponse(...)
答案 0 :(得分:0)
使用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']
答案 1 :(得分:-1)
检查第一个示例。
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被声明为全局,在函数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]
现在你在function1中定义了 lst = [7,8] 所以这会创建一个新的本地列表lst并且在function1中使用了相同的(本地版本),当你再次调用lst时,在function2中,它的全球版本被称为。[这就是你正在做的事。]
然后将新的本地列表声明为 lst = ['12','10'] ,将您的值附加到函数外部定义的现有列表中,并声明为全局列表。