我有一个非常简单的问题:
为什么这样做?你知道吗
def print_list():
for student in student_list:
print(student)
student_list = ["Simon", "Mal", "River", "Zoe", "Jane", "Kaylee", "Hoban"]
print_list()
我了解函数和参数的方式是,函数print_list()
不应该识别student_list
,因为我没有将它指定为函数的参数。你知道吗
Tags:
我的理解是你的程序有三个部分
调用print\u list()时,学生列表已经存在。此外,在函数中,还可以搜索变量(student\ u list)的作用域: 1局部作用域(它将失败,因为您没有定义它,只引用它) 2全局范围(它将成功,因为它刚刚初始化
在Python中,变量是在赋值时创建的。在您的例子中,
student_list
是在全局范围内赋值的,因此它是一个全局变量。(全局范围是不在函数中的内容。)当Python在一个不是局部变量的函数中遇到一个变量时(也就是说,它没有作为参数传入,也没有在函数中赋值),它会自动在全局范围中查找该变量。你知道吗
如果您想知道
global
语句的目的是什么,因为全局变量在函数中已经是可见的:global
允许您重新分配一个全局变量,并使它全局生效。例如:在大多数情况下,您不需要
global
语句,我建议您不要使用它,尤其是在您对Python有更多的经验之前。(尽管如此,即使是有经验的Python程序员也不会经常使用global
)在调用
print_list()
时,已经将student_list
定义为全局变量。你知道吗相关问题 更多 >
编程相关推荐