Python 使用星标 (*)

Python Using star (*)

我对使用 * 感到困惑。 first_example 有效,但为什么 second_example 无效?

错误状态:

UnboundLocalError: local variable 'a' referenced before assignment

我该如何解决这个错误?

a, b, c, d, e, f, g, h, i = range(1,10)
alphabet = [a, b, c, d, e, f, g, h, i]

def first_example(*alphabet):
    j = g + i
    print (j)
    second_example(*alphabet)

def second_example(*alphabet):
    a = a + 1
    print (a)

first_example(*alphabet)

不确定您要做什么(因为 alphabet 参数未使用),或者您为什么认为 * 是问题所在,但这会解决问题。

def second_example(*alphabet):
    global a  # add this
    a = a + 1
    print (a)