→ lycantrope: 單*以後的argument只能是keyword argument 01/30 12:50
沒感覺耶。。。
只能再加一個 debug 參數而已,想加其他的都有問題
→ lycantrope: 加*會限制debug只能用keyword傳入function ..... 01/30 14:29
!! 真有這事,而且我也可以做這種定義
def __new__(cls, func, /, *args, **keywords):
還有除號也可以放在宣告裡
這要在哪裡找文件?
我 google 能力不行了 Orz
推 timsheu: (*args, **kwargs),*是list,**是dict,上面人家寫keyword 01/30 15:02
→ timsheu: 查一下吧 01/30 15:03
你這兩行我是知道的,但是純一個星號的我卻不知道
原來是'限制一定要'加上變數名
推 timsheu: 應該是說*跟**都很像C pointer的寫法,所以我是這樣記 01/30 15:19
推 timsheu: 不是限制,是*args已經包含了所有positional args,同理**k 01/30 15:54
是限制,你花點時間試吧!
def f1(*, a, b):
print(a + b)
f1(5, 6) # 這行是錯的,因為 a, b 兩個參數,已被限制一定要加上變數名
f1(a=5, b=6) # 就像這樣
→ timsheu: wargs也是包含了所有keyword args,那你後面就不能再寫 01/30 15:54
→ timsheu: 打開python cli輸入def f(*args, **kwargs, a, b, c): 01/30 15:55
→ timsheu: enter會直接報錯 01/30 15:55
→ timsheu: python在定義args的時候會需要注意順序性 01/30 15:57
你這段我也都知道,但這次真的不是說這個
有些事很像很像,但真的不一樣
你在講的是
def f1(*a):
我在講的是
def f1(*, a, b):
一個是星號後接一個變數名
一個是只有星號,沒有變數名
前者非常多網友寫網頁說明
後者我今天才見到。
推 timsheu: 官方文件現在大多也都有中文了 01/30 16:00
有了,在 4.8.3 節有說明
至於你那兩行,我在蠻多地方都有看到網友說明
不過還是官方文件好,有系統性說明,不會掛萬漏一
→ timsheu: 那叫spec,不是limitation. 01/30 16:20
我在查找的這段規格,它是在形容一種限制
推 andy19960407: 怎一堆不懂裝懂 01/31 03:04
別這麼說,不管誰都是比上不足,以下有餘
只要可以互補就有收獲
能真心聽懂在講什麼,能給資訊,都是幫手
我在前公司被年輕人電,因為他會我不懂的東西
就算五年前不被電,五年後我還是要被電
因為我會老。。。 會體力不如年輕人
(我還是有比他強的部份,但他在他行的部份要電我,我無法拒絕 XD)
就互相體諒吧,這個修羅道場啊~
推 Tylerastro: 推心態,我也第一次看到,其實stackoverflow上也有問 01/31 12:26
→ Tylerastro: 過,也許下次用英文查很快就找得到答案? 01/31 12:27
我偶爾想到會試英文
這次關鍵字要用 'plain star'
用 python star parameter 查不到,一堆像 *abc 這種會被查出來
但只有 * 沒有變數名稱怎麼查?我又用 star only 也查不到
最後查到了,看到字眼寫 'plain star'
傻眼,我英文沒那麼好,不知道 plain 是這個意思
→ Tylerastro: 我是用python star/slash argument,有時候未知的的確 01/31 23:16
→ Tylerastro: 難翻英文 01/31 23:16
我是在知道有 *,不知道有 / 的情況下搜尋,所以不會加上 slash XD
資訊少一點就不好找了
噓 s860134: 買本書 精通python3 有中文 02/01 01:34
但紙本書沒有搜尋能力,如果在網路上的網友會掛萬漏一
就不知紙本書會不會掛萬漏一
※ 編輯: HuangJC (49.217.70.24 臺灣), 02/01/2023 09:03:59
推 YR000: *arg或是*b ,*號後面的arg還有b都只是名稱而已,可加可不 02/02 12:11
→ YR000: 加 02/02 12:11