Python 函式及引數

2022-08-19 03:03:16 字數 1519 閱讀 4325

函式引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。

使用遞迴函式需要注意防止棧溢位。在計算機中,函式呼叫是通過棧(stack)這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞迴呼叫的次數過多,會導致棧溢位。

*args:表示可變引數;**args表示關鍵字引數;預設引數的值只在定義時計算一次,每次呼叫時都是相同的,預設引數不能是可變物件。

def person(name, age, *, city, job):

和關鍵字引數**args不同,命名關鍵字引數需要乙個特殊分隔符*,*後面的引數被視為命名關鍵字引數。

命名關鍵字引數必須傳入引數名,使用命名關鍵字引數時,要特別注意,如果沒有可變引數,就必須加乙個*作為特殊分隔符。如果缺少*,python直譯器將無法識別位置引數和命名關鍵字引數.

def f1(a, b, c=0, *args, **kw):

print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):

print('a =', a, 'b =', b, 'c =', c, 'd =', d,'kw =', kw)

>>> f1(1, 2)

a = 1 b = 2 c = 0 args = () kw = {}

>>> f1(1, 2, c=3)

a = 1 b = 2 c = 3 args = () kw = {}

>>> f1(1, 2, 3, 'a', 'b')

a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}

>>> f1(1, 2, 3, 'a', 'b', x=99)

a = 1 b = 2 c = 3 args = ('a', 'b') kw =

>>> f2(1, 2, d=99, ext=none)

a = 1 b = 2 c = 0 d = 99 kw =

通過乙個tuple和dict,你也可以呼叫上述函式:

>>> args = (1, 2, 3, 4)

>>> kw =

>>> f1(*args, **kw)

a = 1 b = 2 c = 3 args = (4,) kw =

>>> args = (1, 2, 3)

>>> kw =

>>> f2(*args, **kw)

a = 1 b = 2 c = 3 d = 88 kw =

python 中 函式引數 及 類

下面列舉了4種不同情況下 python的函式引數使用方法,以及執行結果 函式的引數 定義必備引數,也就是說 沒有預設值的,只能靠引數的傳入 def fun1 string print what you say is string return 定義了預設的引數 def fun2 string hi ...

Python 基礎 函式引數及呼叫

函式中return返回值功能 這次是要來說明一下,return到底在函式中有什麼作用 usr bin env python3 coding utf 8 def test1 print in the test1 return 0 print test end test 執行結果 in the test...

python引數函式 Python函式引數總結

coding utf 8 整理一下python函式的各種引數型別 位置引數 呼叫函式時,傳入的兩個值按照位置順序依次賦給引數 def power x,n s 1 while n 0 n n 1 s s x return s print power 5,2 預設引數 簡化函式的呼叫 def power...