我有一個帶有大量引數的python函式:
def func(p1=0, p2=0, p3=0, p4=0, p5=0, ..., pN=0) -> None: pass
我想強制用戶將引數設定為關鍵字引數。
我想到了一種對我來說似乎不合適的解決方案:
def func(*_, p1=0, p2=0, p3=0, p4=0, p5=0, ..., pN=0) -> None: pass
如果給出了不需要的有序引數,甚至將有序引數與無序引數分開,我什至可以引發錯誤:
def func(p1, p2, p3, *unwanted, p4=0, p5=0, p6=0, ..., pN=0) -> None:
if unwanted: raise TypeError
沒看到有人這樣,有問題嗎?
uj5u.com熱心網友回復:
這已經是一種標準方法。它在PEP3102中定義
它在許多圖書館中使用。
舉個例子:在熊貓'drop函式,后面的所有引數*都是關鍵字:
DataFrame.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
_請注意,如果您只想忽略引數,則不需要,裸機*就足夠了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/532728.html
下一篇:訪問ac檔案外的變數
