[问题] 请问 /, * 出现在 parameter 里的意思

楼主: HuangJC (吹笛牧童)   2023-01-30 16:37:31
请教一下
def run(main, *, debug=False):
这个宣告我看不懂,要怎么看?
我能理解这种宣告
def f1(a, *b):
这代表第一个参数是 a, 余下是 b, 而且会被存成 tuple 型式
但我不能理解只有一个 * 号,那又是什么?
谢谢
作者: lycantrope (阿宽)   2022-01-30 12:50:00
单*以后的argument只能是keyword argument加*会限制debug只能用keyword传入function .....
作者: timsheu (为道日损)   2022-01-30 15:02:00
(*args, **kwargs),*是list,**是dict,上面人家写keyword查一下吧应该是说*跟**都很像C pointer的写法,所以我是这样记
作者: lycantrope (阿宽)   2022-01-30 15:26:00
作者: timsheu (为道日损)   2022-01-30 15:54:00
不是限制,是*args已经包含了所有positional args,同理**kwargs也是包含了所有keyword args,那你后面就不能再写打开python cli输入def f(*args, **kwargs, a, b, c):enter会直接报错python在定义args的时候会需要注意顺序性官方文件现在大多也都有中文了https://docs.python.org/zh-tw/3.10/index.html那叫spec,不是limitation.
作者: andy19960407 (258698)   2023-01-31 03:04:00
怎一堆不懂装懂
作者: Tylerastro (Tyler)   2023-01-31 12:26:00
推心态,我也第一次看到,其实stackoverflow上也有问过,也许下次用英文查很快就找得到答案?我是用python star/slash argument,有时候未知的的确难翻英文
作者: s860134 (s860134)   2023-02-01 01:34:00
买本书 精通python3 有中文
作者: YR000 (YR)   2023-02-02 12:11:00
*arg或是*b ,*号后面的arg还有b都只是名称而已,可加可不加

Links booklink

Contact Us: admin [ a t ] ucptt.com