按照形參位置傳入的引數被稱為位置引數。如果使用位置引數的方式來傳入引數值,則必須嚴格按照定義函式時指定的順序來傳入引數值;如果根據引數名來傳入引數值,則無須遵守定義形參的順序,這種方式被稱為關鍵字(keyword)引數。
def demo(a, b, x='hehe'):
print('a={}'.format(a))
print('b={}'.format(b))
print('x={}'.format(x))
demo(1,2,'jjj') # 位置引數
demo(x='kkk', b=1, a=2) # 關鍵字引數
如果希望在呼叫函式時混合使用關鍵字引數和位置引數,則關鍵字引數必須位於位置引數之後。換句話說,在關鍵字引數之後的只能是關鍵字引數。
python 允許在形參面前新增乙個星號(*),這樣就意味著該引數可接受多個引數值,多個引數值被當做元組傳入。
# print(*args, sep=' ', end='\n', file=sys.stdout, flush=false)
# 在函式宣告時,定義形參並給形參設定乙個預設值,這種引數可以稱之為預設引數
# 預設值可以稱之為預設值
# print('hello', 'good', sep='_', end='----------')
# print('***x')
# def demo(a, x='hello', b):
def demo(a, b, x='hello', y='yes'): # 如果有預設引數,預設引數要放在非預設引數的後面
print('a*****>{}'.format(a))
print('b*****>{}'.format(b))
print('x*****>{}'.format(x))
print('y*****>{}'.format(y))
# demo('good', 12)
# demo(100, 'yes', '***x')
# demo(x='mmmmm', a=100, b='sssss')
# demo('ddddd', 99, y='ppppp')
# 可變引數和預設引數同時出現
def test(a, b, *args, x='good', y='nice'):
print('a*****>{}'.format(a))
print('b*****>{}'.format(b))
print('args===={}'.format(args))
print('x*****>{}'.format(x))
print('y*****>{}'.format(y))
# 位置引數必須要放在關鍵字引數的前面
test(12, 23, 100, 50, 'yes', 'no', 56, 78, x='ddddd', y='ffffff')
# names = ('zhangsan', 'lisi', 'wangwu')
names = ['zhangsan', 'lisi', 'wangwu']
# test(12, 34, names[0],names[1],names[2], x='mmmm', y='tttt')
test(12, 34, *names, x='mmmm', y='tttt')
python 還可以收集關鍵字引數,此時python會將這種關鍵字收集成字典,為了讓python能收集關鍵字引數,需要在引數前面新增兩個星號。在這種情況下,乙個函式可同時包含乙個支援「普通」引數收集的引數和乙個支援關鍵字引數收集的引數。
def demo(a, b, *args, x='hello', y='good', **kwargs):
print('a ====>{}'.format(a))
print('b ====>{}'.format(b))
print('args ====>{}'.format(args))
print('x ====>{}'.format(x))
print('y ====>{}'.format(y))
print('kwargs ====>{}'.format(kwargs))
# demo(1, 2, 3, 4, 5, 6, 7, x='dddd', y='ppppp', m='sssss', n='qqqqqq')
person =
cities = ('上海', '蘇州', '南京', '杭州', '襄陽', '烏魯木齊')
# demo(1, 2, 3, 4, 5, 6, 7, x='sss', y='dddd', **person)
# demo(1, 2, 3, 4, 5, 6, 7, x='sss', y='dddd', name='zhangsan', age=18)
demo(4, 5, *cities, x='sss', y='dddd', **person)
c 函式的引數型別
引數型別主要包括兩種 一 值型別 在使用值型別引數時,是把乙個值傳遞給函式使用的乙個變數。對函式中此變數的任何修改都不影響函式呼叫中指定的引數 二 引用型別 可以影響引數,引用型別的作用還是比較大。會在以後的實戰專案中經常碰到,暫不多說,下面只給乙個關於引用型別的例子 其中ref和out的區別在於o...
Python函式的引數型別
1 位置引數 引數的位置 順序 很重要,形參和實參個數要匹配 2 關鍵字引數 對引數的位置要求不是很嚴格 3 預設值引數 1 如果形參中制定了預設值,在實參中可以不傳遞形參對應的實參 2 如果形參中指定了預設值,在實參彙總傳遞該引數後,最終引數以傳遞的實參為準 4 不定長引數 1 a 接受傳遞單個值...
函式的幾種引數型別
函式 1 以def開頭,後接函式識別符號和圓括號 2 所有傳入的引數和自變數都必須在圓括號中,可以在圓括號中定義引數 3 函式內容以冒號開始,並且要縮排 4 return 表示式 結束函式,選擇性返回乙個值給呼叫方,不帶表示式的return相當於返回none 5 函式的引數有必須引數 關鍵字引數 預...