‫让我们来谈谈参数和关键字参数｡
‫我的意思是, 我们已经见过了｡
‫好吧, 我知道了
‫有了功能｡
‫我们实际上有一些特殊的字符, 我们可以使用, 叫做args和星星, star关键字args｡
‫我们如何使用这些？
‫好吧, 让我们来看看｡
‫让我们试着做一个函数｡
‫比如说定义, 我们称之为超级放克.
‫用于接收某种参数的超函数｡
‫以及我们将要收到的这些参数｡
‫记住, 虽然我把这些称为弧线｡
‫这本身就是一个参数, 记得吗？
‫但是假设我们只想返回一些参数, 你可能想知道为什么有些参数我们不需要定义函数呢？
‫好吧, 一些实际上存在于Python中, 正如你在这里看到的｡
‫所以我们可以只返回一些参数｡
‫我们来试试这个｡
‫让我们说超级功能｡
‫并给予它参数｡
‫一, 二, 三, 四, 五｡
‫如果我点击运行｡
‫嗯嗯嗯
‫我在空气中得到超级放克需要一个位置的论点, 但五个地方给, 这是有意义的, 对不对？
‫我这里只有一个参数, 它接受的是位置参数｡
‫我试着把它加起来, 这样它只接收到一个, 但是我把它给了所有它不知道的东西｡
‫我们可以在这里加上一个星星｡
‫我们说, 嘿, 它可以接受任意数量的位置参数｡
‫我想要多少就有多少｡
‫事实上, 我们把这个打印出来｡
‫如果我打印出星星, 然后运行这个函数｡
‫我们可以看到, 打印星星给我们一, 二, 三, 四, 五｡
‫这些是我们得到的所有参数｡
‫如果我真的删除了这里的星星, 然后单击“运行”｡
‫你看那个｡
‫实际上我得到的是元组｡
‫所以这个函数里面的args是我给予它的一个参数元组｡
‫一, 二, 三, 四, 五｡
‫所以一些元组1, 2, 3, 4, 5会给予我们正确的答案｡
‫它会为我们打印出来｡
‫的答案｡
‫15.
‫非常, 非常酷｡
‫这样我们就可以扩展｡
‫并使用我们的星星参数来拥有一个可以接受任意数量参数的函数｡
‫现在这是什么？
‫好吧, 这个｡
‫允许我们使用关键字参数｡
‫例如, 假设我有这样的星星star关键字弧｡
‫顺便说一句, 这可以是任何东西｡
‫这就是我们要创建的变量｡
‫如果我愿意的话, 我可以把它命名为hoo, 但是标准的命名方式是args和关键字args, 因为其他开发者也是这样使用它的,
‫这也是Python社区的做法｡
‫现在有了关键字arc, 正如你可能已经猜到的, 我可以添加关键字, 如num one equals｡
‫五加二等于十｡
‫所以如果我打印关键字args并单击run｡
‫我有一本没有字的字典｡
‫一等于五, 现在二等于十｡
‫所以我可以在关键字参数中做一些类似sum加sum的运算｡
‫并获取值｡
‫好吧, 我知道了
‫我们以前见过｡
‫让我们来做一个for循环, 输入关键字arc中的项, 点值.
‫记住把这里和这里的值取出来, 把总数加起来｡
‫假设这里的总数等于或加等于项, 我们就加一个总数.
‫在这里, 最初是零, 所以有些｡
‫将是一些参数加上总数｡
‫如果我运行这个｡
‫我得到30｡
‫现在看来, 这看起来确实有点混乱｡
‫所以我们来复习一下｡
‫我们有星星, 它允许我们抓住这些位置参数, 然后把所有的东西相加｡
‫我们也有关键字弧, 它允许我们获取任意数量的关键字参数, 并得到一个作为关键字弧的字典,
‫然后按我们想要的方式使用它们｡
‫在我们的例子中, 我们循环遍历所有的值, 所以关键字中的项是值,
‫然后我将对所有项求和｡
‫求一个总数, 然后返回总数｡
‫这又是非常有用的, 因为我们的超级基金现在可以接受任意多的参数, 任意多的位置参数和关键字参数｡
‫最后一件事｡
‫我们可以在这里对参数进行排序｡
‫好吧, 我知道了
‫所以这个规则的顺序是参数中的第一个｡
‫我们有很好的实际参数｡
‫然后我们可以做星星, 然后默认参数｡
‫然后星星｡
‫星星｡
‫关键字弧｡
‫让我来告诉你我的意思｡
‫如果我们想定义这个函数, 我们需要确保如果我们给予它一个参数, 比如name｡
‫应该在星星之前｡
‫如果我们有默认参数, 它通常应该在弧之后, 但在关键字弧之前｡
‫如果我有, 假设我等于高, 在这里加一个逗号｡
‫我们现在已经遵循了这个规则｡
‫顺便说一句, 你永远不会写这样的函数, 因为, 坦白说, 它看起来超级混乱｡
‫通常你只用两个或者一个｡
‫但这样我就可以调用这个函数, 先用name, 然后用args, 再用default参数, 也就是I等于high,
‫我们甚至都不传入.
‫然后我们有这个｡
‫所以如果我们跑这里｡
‫这个还能用｡
‫我们只是不使用名字和我｡
‫但是你可以看到我遵循了params args, default参数, 然后是关键字arx的规则｡
‫好吧, 我会的
‫希望这次之后你的头不会太痛｡
‫休息一下, 下一场见｡
‫再见, 再见, 再见