smartsy 发表于 2021-3-22 22:53:17

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

在定义函数的参数前面加个*是啥意思?或者是为了体现什么效果?好像print()里面也有些参数也是加了*的。。。

Stubborn 发表于 2021-3-22 22:57:56

参考这个:https://fishc.com.cn/thread-153336-1-1.html

jackz007 发表于 2021-3-22 23:43:18

本帖最后由 jackz007 于 2021-3-22 23:44 编辑

def myfun(* param , base = 3)   # 参数 param 是一个可迭代对象,像这样,('A' , 'B' , 'C') 、'ABCD' 、 等等。
    这一句
    result *= base
    是
    result = result * base
    的简写形式

qq1151985918 发表于 2021-3-23 10:28:35

参数前面加 * 表示可以传入多个参数,同属于param,为可迭代参数,能够转换成列表、元组等进行操作
如果参数前面加 ** 表示可以传入表达式,例如赋值操作a = 1体现在函数内则为字典形式{"a":1}
>>> def f1(*x):
        print(x)

       
>>> f1("a","b")
('a', 'b')
>>> def f2(**y):
        print(y)

       
>>> f2(a = "A")
{'a': 'A'}
>>>
页: [1]
查看完整版本: 在参数面前加*号是啥意思或者有什么效果吗?