當前位置:首頁 » 編程語言 » 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-05-17 05:29:51 瀏覽:565
linux指定組 發布:2024-05-17 05:04:39 瀏覽:86
魯班演算法 發布:2024-05-17 04:59:46 瀏覽:489
分布鋼筋配置有哪些 發布:2024-05-17 04:51:57 瀏覽:148
軒逸寶來朗逸配置一樣哪個平易 發布:2024-05-17 04:48:59 瀏覽:433
c盤刪除緩存文件對系統有影響嗎 發布:2024-05-17 04:27:47 瀏覽:340
python不能輸入中文 發布:2024-05-17 04:27:34 瀏覽:111
小米電視密碼設置在哪裡 發布:2024-05-17 04:06:12 瀏覽:426
java正則sql 發布:2024-05-17 04:05:52 瀏覽:620
51單片機c語言教程郭天祥 發布:2024-05-17 03:46:13 瀏覽:890