为了最终确定我们对函数的理解, 我们必须讨论范围｡
我们的另一个关键术语｡
什么是范围？
我们来看看｡
作用域在很多编程语言中都存在｡
作用域的意思是我有哪些变量？
访问｡
就这样了｡
那么我的意思是什么呢？
我们以前见过这种情况, 在这里我打印, 然后如果我单击“运行”, 让我们说名称｡
我会得到一个错误｡
名称错误｡
名称未定义, 因为｡
好吧, 它不存在｡
好吧, 我知道了
到目前为止, 我们还没有真正讨论过这个问题, 但这是因为范围的原因｡
我可以访问哪些变量？
Python解释器会说, 嘿, 我可以访问什么？
当我们使用它不理解或无法访问的内容时, 它会抛出一个名称错误｡
或者这里没有定义变量, python中的作用域有我们称之为函数作用域或函数作用域｡
那是什么意思？
到目前为止, 当我们创建一个变量, 比如total等于100, 这是我们所说的全局作用域的一部分｡
这意味着这个文件上的任何人都可以访问这个total变量｡
我可以在条件块中使用它｡
我可以在函数中使用它｡
它具有全球范围｡
但是当我说Python有一个函数作用域｡
我的意思是, 当我们创建一个函数时, 比如说我们创建total作为some或者some func｡
我们在函数中创建了total｡
如果我在这里打印总数并单击运行｡
我也一样｡
未定义名称总计｡
这是因为Python的函数作用域｡
任何时候我们创建一个变量, 如果它不在函数中｡
那么它就是全局范围的一部分｡
我们有权限访问它｡
但你看这里我们得到了红色下划线, 未定义的名称总数｡
比方说, 如果我有一个条件, 如果是真的｡
那么X等于10｡
如果我这样做, 我说X, 我点击运行｡
我有十个因为｡
嗯, 虽然我有压痕｡
我唯一一次创建新的作用域｡
你可以把它想象成一个新的宇宙｡
我们只能这样定义一个函数｡
把范围想象成我们创造的新世界｡
在我们的例子中, 当我们创建一个函数时, 我们创建了一个新的世界,
函数内部缩进的任何内容都是它自己的世界, 我们实际上无法访问它｡
如果我们缩进打印, 我们只能使用total｡
它是这个世界的一部分｡
这就是范围｡
谁可以访问谁？
我们休息一下吧｡
我想在下一个视频里玩一个小游戏, 我们试着找出谁能接触到谁｡
我会看到你在那个｡
再见, 再见, 再见