[問題] 請問 /, * 出現在 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