當前位置:首頁 » 編程語言 » python參數不定

python參數不定

發布時間: 2024-04-30 05:47:20

A. python提示參數數目不對

這提示是,此函數需要7個參數,而題主提供了8個參數,注意:python類默認有一個self(本類)參數,所以參數數量計算為(默認參數1+提供參數7),也就是8個參數。

舉個例子:

核對後去除多餘參數就可以

B. Python方法的幾種常見參數類型

  • 無默認值參數(關鍵字參數):

defmyfun(a):
print(a)

這是參數的最簡單形式。這個a就是無默認值參數。在調用函數時必需為無默認值參數指定值。

無默認值參數可以通過兩種方式來指定值:

#按參數定義順序不指名傳遞值
myfun('/src/image')

#無視定義順序,通過關鍵字指定值
myfun(a='/src/image')

無默認值參數在函數內部使用關鍵字作為變數名來訪問

無默認值參數可以有多個,也是一些其它參數類型的基礎。

  • 默認值參數:

如果在定義時為參數指定一個默認值,那麼,這個參數就可以在調用時不指定值:

defmyfun(a=''):
print(a)


#不為a指定值
myfun()

#按定義順序為a指定值
myfun('/src/lib')

#通過關鍵字為a指定值
myfun(a='/src/lib')

在定義時,所有默認值參數只能出現在所有無默認值參數之後,也就是說,在函數的定義中,要先定義無默認值參數,再定義默認值參數。

  • 不定長參數:

在參數名之前添加一個*號,則該參數稱為不定長參數。一個函數只可以有一個不定長參數。不定長參數的定義位置沒有限制,它可以定義在無默認值參數之間,也可以定義在默認值參數之後,或者它們之間的任何一個位置。

在調用時,不定長參數之後定義的無前兩種類型的參數就只能使用關鍵字來指定值了。

不定長參數在函數內部被處理為一個tuple。

def_max(*e,base=9):
print('called"_max":')
print('e:',e)
print('base:',base)

#只向不定長參數傳遞了值
#輸出:
#called"_max":
#e:(3,4,5)
#base:9
_max(3,4,5)

#也向默認值參數base傳遞了值
#輸出:
#called"_max":
#e:(3,4)
#base:5
_max(3,4,base=5)

#直接通過一個元組傳遞不定長參數的值
#輸出:
#called"_max":
#e:(3,4)
#base:5
p=(3,4)
_max(*p,base=5)

#使用混合方式傳遞不定長參數
#輸出:
#called"_max":
#e:(3,4,5,6,7)
#base:10
p1=(3,4)
p2=(6,7)
_max(*p1,5,*p2,base=10)

調用函數時如果沒有為不定長參數指定值,將導入一個空元組。

  • 不定長關鍵字參數:

不定長關鍵字參數使用兩個星號作為前綴與其它類型的參數區分,它在函數內被導入為一個字典。調用時需要為不定長關鍵字參數給出約定的關鍵字名,賦值形式如同無默認值參數。

一般情況下,不定長參數是作為最後一個參數來定義。

defmyfun(**kw):
print(kw)

myfun(base=1,home='aaaa')

以上只是基本的調用方式,有些時候,可以有更有趣的調用方式,例如定義了一個既含無默認值參數也含默認值參數的函數:

defiter_dir(homedir,exts='*',includesubdir=False,monoinfile=False,
titlere='^[^^].*',textengine=default_textengine,
encode=None):

調用時也可以用這樣的方式來傳遞值:

kwgs={'homedir':'C:/Users/hunte/Documents/yun/阿瑟·C·克拉克',
'exts':'txt',
'includesubdir':True}
myiter=iter_dir(**kwgs)
forfileinmyiter:
pass

C. python 函數參數帶*是啥意思

  1. *代表的是參數個數不確定的情況;

  2. 帶一個星號(*)參數的函數傳人的參數存儲為一個元組(tuple);

  3. 而帶兩個星號(*)參數的函數傳人的參數則存儲為一個字典(dict);

  4. 由於傳入的參數個數不定,所以當與普通參數一同使用時,必須把帶星號的參數放在最後。

D. python函數中參數帶有一個星號

*代表的是參數個數不確定的情況;帶一個星號(*)參數的函數傳人的參數存儲為一個元組(tuple);而帶兩個星號(*)參數的函數傳人的參數則存儲為一個字典(dict);由於傳入的參數個數不定,所以當與普通參數一同使用時,必須把帶星號的參數放在最後。

熱點內容
狂牛加密視頻破解 發布:2024-11-28 02:32:54 瀏覽:867
騰訊視頻上傳技巧 發布:2024-11-28 02:28:05 瀏覽:238
2016資料庫系統工程師 發布:2024-11-28 02:22:16 瀏覽:891
壓縮機飛動 發布:2024-11-28 02:00:04 瀏覽:273
50年腳本 發布:2024-11-28 01:58:38 瀏覽:220
光遇渠道服初音腳本怎麼換號 發布:2024-11-28 01:57:44 瀏覽:416
平板電腦配置怎麼看配置高不高 發布:2024-11-28 01:57:43 瀏覽:613
大逃殺掛機腳本 發布:2024-11-28 01:45:45 瀏覽:567
pythontimesleep 發布:2024-11-28 01:43:38 瀏覽:280
php圖片編輯 發布:2024-11-28 01:33:15 瀏覽:245