我真的不明白为什么在调用函数后这些对象的值不会改变。我以前在一个站点上读过,可变对象可以作为参数传递,并且它们的值可以更改。 / p>
def concatenare(Q, sigma, s, F, delta):
Q = Q1.union(Q2R)
sigma = sigma1.union(sigma2)
s = s1.copy()
F = set(F2)
delta = delta1.copy()
delta.update(delta2R)
for finale in F1:
delta[(finale, s2R[0])] = '.'
Q = set()
F = set()
sigma = set()
delta = dict()
cuvinte = list()
s = list()
concatenare(Q, sigma, s, F, delta)
# Q1,Q2R,sigma1,sigma2,F2,delta1,delta2r,F1 are previously defined and have some values assigned
output:
set()
set()
{}
[]
set()
答案 0 :(得分:0)
由于您不使用传入的值,仅对其进行赋值,因此您应该让函数返回所有想要的值:
def concatenare():
Q = Q1.union(Q2R)
sigma = sigma1.union(sigma2)
s = s1.copy()
F = set(F2)
delta = delta1.copy()
delta.update(delta2R)
for finale in F1:
delta[(finale, s2R[0])] = '.'
return Q, sigma, s, F, delta
Q, sigma, s, F, delta = concatenare()
或者,(异端!)分配给全局变量,因为无论如何您都使用全局变量来构建值。