比方說,我有這兩個功能:如何使用或訪問函數內的列表到另一個函數?
lst = []
def function1(request):
lst = ['12','10']
return HttpResponse(...)
def function2(request):
qry = SampleModel.objects.filter(id__in=lst)
return HttpResponse(...)
比方說,我有這兩個功能:如何使用或訪問函數內的列表到另一個函數?
lst = []
def function1(request):
lst = ['12','10']
return HttpResponse(...)
def function2(request):
qry = SampleModel.objects.filter(id__in=lst)
return HttpResponse(...)
使用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被聲明爲全局和在功能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()
輸出與您在功能1 LST定義現在
C:\Python34\python.exe "C:/Users/akthakur/PycharmProjects/Learning python/testing.py"
[7, 8, 6]
[7]
= [7,8]所以這創造了一個新的本地列表和LST在function1同樣被使用(本地版本),而在函數2中,當你再次調用lst時,它的全局版本被調用。[這就是你在做的事情。]
然後聲明新的本地列表爲lst = ['12','10'],將您的值附加到在函數外定義的現有列表中,並聲明與全局相同。
全局lst = []功能外 – The6thSense
不使用全局通過並返回或使用類 –