这可能是一个非常愚蠢的问题,但是在这种情况下是否可以使本地空列表保持更新:
def voeg_vriendschap_toe(sn, naam_persoon1, naam_persoon2):
relaties = []
count_variabel = 0
aanwezig_persoon1 = False
aanwezig_persoon2 = False
uitvoeren = True
for i in relaties:
if((i[0] == naam_persoon1) and (i[1] == naam_persoon2)):
uitvoeren = False
while ((len(sn) > count_variabel) and ((aanwezig_persoon1 == False) or (aanwezig_persoon2 == False)) and (uitvoeren == True)):
if (sn[count_variabel] == naam_persoon1):
aanwezig_persoon1 = True
if (sn[count_variabel] == naam_persoon2):
aanwezig_persoon2 = True
count_variabel += 1
if ((aanwezig_persoon1 == True) and (aanwezig_persoon2 == True)):
sn.append([naam_persoon1, naam_persoon2])
sn.append([naam_persoon2, naam_persoon1])
relaties.append([naam_persoon1, naam_persoon2])
relaties.append([naam_persoon2, naam_persoon1])
return sn
else:
return sn
我希望在附加函数之后更新关系,而在多次调用该函数时不要再次成为空列表。
因此,如果一次调用voeg_vriendschap_toe(),并且关系更新为[[1,2 ,, [2,1]]。但是,如果再次调用它,它将再次成为一个空列表,而不是保留其值。不用使用全局变量就可以保持其值吗?
答案 0 :(得分:0)
如果您不想使用类,则获取所需内容的一种方法是使用可变的默认参数:
def voeg_vriendschap_toe(sn, naam_persoon1, naam_persoon2, relaties = []):
count_variabel = 0
...
这样,relaties
只会在函数定义中被评估为[]
一次。
您可以查看Default Parameter Values in Python和Least Astonishment” and the Mutable Default Argument了解更多详细信息。
请注意,不过,根据您的使用情况,使用类可能会更好。