鱼C论坛

 找回密码
 立即注册
查看: 125|回复: 2

[已解决]为什么other前面要加*号

[复制链接]
发表于 前天 12:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么other前面要加*号
最佳答案
前天 14:37
这里的星号 * 出现在函数定义的形参位置,表示“可变数量的位置参数”。意思是:

update 可以一次接受任意多个“可迭代对象”,把它们里的元素全部添加进原来的集合。


代码:

  1. s = {1, 2}
  2. s.update([3, 4], (5, 6), 'ab')   # 依次把列表、元组、字符串中的元素并入
  3. print(s)   # {1, 2, 3, 4, 5, 6, 'a', 'b'}
复制代码

在定义处写 *others → 把调用方传来的多个参数“打包”成一个元组 others。

在调用时,你不需要再写星号:直接把若干可迭代对象逗号分隔地传进去即可。

如果鱼油手头已经有一个装着若干可迭代对象的列表/元组,想把它们“拆包”后再传给 update,这时才会在调用端再用一次星号:

  1. iterables = ([7, 8], {9, 10})
  2. s.update(*iterables)   # 把列表里的两个可迭代对象依次传入
复制代码

简而言之,* 在这里只是告诉我们:update 接受“一个或多个”额外参数,而不是固定只接收一个。
截屏2025-06-07 12.46.49.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 前天 12:48 | 显示全部楼层
在编程中,`*other` 的星号(`*`)是 Python 的特殊语法,作用如下:

1. 收集多余参数
当定义函数时,`*other` 会将传入的所有多余位置参数打包成一个元组(tuple)
[code=python]
def demo(a, b, *other):
    print("固定参数:", a, b)
    print("多余参数:", other)

demo(1, 2, 3, 4, 5)
[/code]
输出:
固定参数: 1 2
多余参数: (3, 4, 5)  # 自动转为元组


2. 解包参数(函数调用时)
调用函数时,`*` 可解包序列(如列表/元组)为独立参数:
[code=python]
numbers = [10, 20, 30]
print(*numbers)  # 等价于 print(10, 20, 30)
[/code]

关键区别:
场景星号作用
函数定义中 `*other`收集多余参数成元组
函数调用中 `*list`解包序列为独立参数


类比理解:
想象你点披萨时:
- 固定参数:必须选尺寸(如12寸)
- `*toppings`:可选任意配料(火腿、菠萝...),店家会打包成一份配料清单

这就是为什么需要 `*` —— 它让函数能处理不确定数量的参数!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 前天 14:37 | 显示全部楼层    本楼为最佳答案   
这里的星号 * 出现在函数定义的形参位置,表示“可变数量的位置参数”。意思是:

update 可以一次接受任意多个“可迭代对象”,把它们里的元素全部添加进原来的集合。


代码:

  1. s = {1, 2}
  2. s.update([3, 4], (5, 6), 'ab')   # 依次把列表、元组、字符串中的元素并入
  3. print(s)   # {1, 2, 3, 4, 5, 6, 'a', 'b'}
复制代码

在定义处写 *others → 把调用方传来的多个参数“打包”成一个元组 others。

在调用时,你不需要再写星号:直接把若干可迭代对象逗号分隔地传进去即可。

如果鱼油手头已经有一个装着若干可迭代对象的列表/元组,想把它们“拆包”后再传给 update,这时才会在调用端再用一次星号:

  1. iterables = ([7, 8], {9, 10})
  2. s.update(*iterables)   # 把列表里的两个可迭代对象依次传入
复制代码

简而言之,* 在这里只是告诉我们:update 接受“一个或多个”额外参数,而不是固定只接收一个。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 12:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表