鱼C论坛

 找回密码
 立即注册
查看: 1240|回复: 3

[已解决]在参数面前加*号是啥意思或者有什么效果吗?

[复制链接]
发表于 2021-3-22 22:53:17 | 显示全部楼层 |阅读模式

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

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

x
在定义函数的参数前面加个*是啥意思?或者是为了体现什么效果?好像print()里面也有些参数也是加了*的。。。
最佳答案
2021-3-23 10:28:35
参数前面加 * 表示可以传入多个参数,同属于param,为可迭代参数,能够转换成列表、元组等进行操作
如果参数前面加 ** 表示可以传入表达式,例如赋值操作  a = 1  体现在函数内则为字典形式  {"a":1}  
  1. >>> def f1(*x):
  2.         print(x)

  3.        
  4. >>> f1("a","b")
  5. ('a', 'b')
  6. >>> def f2(**y):
  7.         print(y)

  8.        
  9. >>> f2(a = "A")
  10. {'a': 'A'}
  11. >>>
复制代码
1616424562(1).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-22 22:57:56 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-22 23:43:18 | 显示全部楼层
本帖最后由 jackz007 于 2021-3-22 23:44 编辑
  1. def myfun(* param , base = 3)   # 参数 param 是一个可迭代对象,像这样,('A' , 'B' , 'C') 、'ABCD' 、[1 , 2 , 3 , 4] 等等。
复制代码

    这一句
  1.     result *= base
复制代码

    是
  1.     result = result * base
复制代码

    的简写形式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-23 10:28:35 | 显示全部楼层    本楼为最佳答案   
参数前面加 * 表示可以传入多个参数,同属于param,为可迭代参数,能够转换成列表、元组等进行操作
如果参数前面加 ** 表示可以传入表达式,例如赋值操作  a = 1  体现在函数内则为字典形式  {"a":1}  
  1. >>> def f1(*x):
  2.         print(x)

  3.        
  4. >>> f1("a","b")
  5. ('a', 'b')
  6. >>> def f2(**y):
  7.         print(y)

  8.        
  9. >>> f2(a = "A")
  10. {'a': 'A'}
  11. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 00:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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