‫欢迎回来｡
‫让我们试着回答一些你可能有的问题｡
‫例如, 参数如何？
‫如果我做参数呢？
‫让我们在这里说B｡
‫当我像这样使用B时, 这个参数是什么？
‫所以我们说打印｡
‫是的｡
‫在这里我会用300这个数字来进行混淆运算｡
‫如果我运行这个｡
‫这很管用｡
‫这是因为B, 参数是局部作用域的一部分｡
‫也就是说, 它是这个的一部分｡
‫因此, 参数被视为局部变量｡
‫我们可以在函数内部使用它, 但不能在函数外部使用它｡
‫从技术上讲, 当我们定义函数时, 我们让解释器知道, 嘿, B将是一个局部变量｡
‫OC这个怎么样？
‫如果我们有这个呢？
‫但是我想确保在我的函数里面我实际上引用的是全局变量｡
‫有没有办法只使用这个值而不创建一个新变量？
‫让我们举一个更好的例子｡
‫假设我想创建一个计数器｡
‫所以我们会得到total等于零｡
‫然后在这里｡
‫我要说的是定义计数｡
‫这个函数是total｡
‫加等于一｡
‫所以我们每次加count的时候, 都会加0加1, 然后再加1,
‫如此类推｡
‫所以我们会在这段代码的末尾返回total｡
‫所以如果我在这里运行, 打印计数｡
‫看看会发生什么｡
‫我要打了｡
‫快跑啊
‫在赋值之前引用了一个错误的局部变量total, 这是因为well count不知道total｡
‫您正在尝试使用total, 但我们尚未分配任何内容｡
‫但是我们要从外面的世界来跑总｡
‫因为如果我在这里计算总数等于零, 然后运行计数｡
‫那太好了｡
‫我有一个｡
‫但如果我想多次运行计数呢？
‫如果我想运行计数, 比如说运行三次, 那么计数总数将是三？
‫让我们在最后一张上打印｡
‫然后单击“Run（运行）”｡
‫我还是得到了一个因为每次我们运行这个函数, 我们都把总数重置为零｡
‫这不是很有用, 是吗？
‫所以我们可以解决这个问题的一个方法就是使用Python中的global关键字｡
‫global表示使用全局变量total, 如果它存在的话这样我就不用创建一个新的变量了, 我可以使用全局变量total.
‫看看这个｡
‫我得到了一个无效的语法, 因为我们首先要说全局总数,
‫然后我们可以说总数加等于一｡
‫如果我运行这个｡
‫一副那样的表情｡
‫我们有一个合适的计数器, 所以global是我们访问这个全局变量的一种方式｡
‫然而, 我认为这实际上不是一个好的方法, 因为当你开始添加全局变量时,
‫所有这些不同的宇宙都在访问彼此的变量时, 它会变得非常混乱｡
‫一种更好的方法是依赖注入, 这是它的简化版本｡
‫但我们的想法是, 不像这样访问函数外的变量, 当文件变得越来越大时,
‫这会变得非常非常复杂, 我们要做的是.
‫这件事
‫全部｡
‫像这样, 我们创建一个参数, 然后传入该参数｡
‫或者在这里争论｡
‫但正如你所看到的, 它仍然是1, 因为当我们打印第三个总数时, 嗯, 这是永远不会改变的｡
‫这是一个全球零｡
‫所以我们可以这样做｡
‫我们可以说count total, 我们再数一次｡
‫然后再数一遍｡
‫如果我运行这个｡
‫我得到三个｡
‫我知道你在想什么｡
‫这完全是疯了｡
‫看起来很混乱｡
‫看看这些括号｡
‫但让我给你看看我们实际上做了什么｡
‫我们能够分离依赖关系或此count函数对外部全局作用域的影响, 而只关注其健康状况｡
‫我们所要做的就是说, 嘿, 我要你给予一个总数为零的计数｡
‫然后, 它的值是1｡
‫然后我们计算一加一等于二, 然后再计算二加一等于三｡
‫这样我们就可以不用使用全局关键字来计数了, 我认为这样更好｡
‫提醒你一下, 如果这是你第一次看到这个, 它可能会变得有点棘手｡
‫但至少这样你知道有不同的方式做的事情｡
‫我想给你们看的另一个词是非本地的｡
‫但对于这一点, 让我们休息一下, 我会在下一个视频中看到你｡