让我们来谈谈参数和关键字参数｡
我的意思是, 我们已经见过了｡
好吧, 我知道了
有了功能｡
我们实际上有一些特殊的字符, 我们可以使用, 叫做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的规则｡
好吧, 我会的
希望这次之后你的头不会太痛｡
休息一下, 下一场见｡
再见, 再见, 再见