Python:在函数中调用尚未定义的变量 - 但是有效吗?

jel*_*oir 1 python variables function undefined

我还是Python的新手,并且一直在审查以下不是我编写的代码.

有人可以解释一下如何在check_arguments函数中调用变量"clean"的第一个实例吗?在我看来,好像它正在调用一个尚未定义的变量.代码有效,但是不应该调用"clean"产生错误吗?

要清楚我指的是这个.

def check_arguments(ages):
    clean, ages_list = parse_ages_argument(ages)
Run Code Online (Sandbox Code Playgroud)

完整代码如下......

def check_arguments(ages):
    clean, ages_list = parse_ages_argument(ages)
    if clean != True:
        print('invalid ages: %s') % ages
    return ages_list

def parse_ages_argument(ages):
    clean = True
    ages_list = []
    ages_string_list = ages.split(',')
    for age_string in ages_string_list:
        if age_string.isdigit() != True:
            clean = False
            break
    for age_string in ages_string_list:
        try:
            ages_list.append(int(age_string))
        except ValueError:
            clean = False
            break

    ages_list.sort(reverse=True)
    return clean, ages_list

ages_list = check_arguments('1,2,3')
print(ages_list)
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 7

Python没有逗号运算符.您所看到的是序列拆包.

>>> a, b = 1, 2
>>> print a, b
1 2
Run Code Online (Sandbox Code Playgroud)