可变对象在函数中作为参数传递时不会更改

2024-09-27 23:22:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的不明白为什么这些对象的值在函数调用后不改变,我以前在一个网站上读过,可变对象可以作为参数传递,它们的值可以改变。你知道吗

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()

Tags: 对象sigmaf2f1deltaunioncopyset
1条回答
网友
1楼 · 发布于 2024-09-27 23:22:20

由于不使用传入的值,只对其赋值,因此应该让函数返回所需的所有值:

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()

或者,(异端!)赋值给globals,因为您仍然使用globals来构建值。你知道吗

相关问题 更多 >

    热门问题