函式的引數型別

2021-09-26 14:48:20 字數 2460 閱讀 7911

按照形參位置傳入的引數被稱為位置引數。如果使用位置引數的方式來傳入引數值,則必須嚴格按照定義函式時指定的順序來傳入引數值;如果根據引數名來傳入引數值,則無須遵守定義形參的順序,這種方式被稱為關鍵字(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 函式的引數有必須引數 關鍵字引數 預...