Pythonは、関数のパラメータを学習します----

フォーム間のI.はじめ引数

パラメータ:定義フェーズ機能で定義された仮パラメータと呼ばれるパラメータは、パラメータと呼ばれます

def func(x, y):  # x = 1,y =2
    print(x, y)

引数:実際のパラメータ値ステージと呼ばれる着信関数は、変数の値に相当し、引数と呼ば

func(1, 2)

フォーム引数との関係:

1、通話相、引数(可変値)がパラメータ(変数名)のために(結合メモリアドレス)が割り当てられます
2、この結合関係は機能のみの体内で使用することができる
3、仮パラメータを結合固体関係は、関係します関数呼び出しは、関数呼び出しの終了後に有効にしたときにアンバインド

引数の値が対応するが、値の形式であってもよい
の形で:

func(1,2)

2の形態においては:

a = 1
b = 2
func(a, b)

3の形態においては:

func(int('1'), 2)
func(func1(1,2,),func2(2,3),333)

第二に、実際の具体的な使用のパラメータ

位置パラメータ:順次左から右に記載のパラメータ定義された位置パラメータには、呼び出された
左から右に直接定義するために応じて可変名:位置パラメータの
特性、位置パラメータの値がより少なくとも一つのない、転送されなければなりません仕事はしていません

def func(x, y):
    print(x, y)

引数の位置:案内値の左から順に通過
機能:ワンオーダーパラメータと

func(1, 2, )

2.2キーワードのパラメータ

キーワード引数:関数呼び出し相、キー=渡された値の値の形で

def func(x, y):
    print(x, y)


func(y=2, x=1)
func(1, 2)

ミックス、強調

1、引数の位置は、キーワード引数の前に配置する必要があります

def func(x, y):
    print(x, y)


func(1, y=2)


func(y=2,1)  # 语法错误 位置实参必须放在关键字实参前

図2に示すように、同一の送信パラメータ値について繰り返すことができません

def func(x, y):
    print(x, y)

func(1,y=2,x=3) # x重复传值
func(1,2,y=3,x=4) # x,y重复传值

2.3デフォルトパラメータ

デフォルトパラメータ:関数定義の段階では、長いパラメータが割り当てられていない
機能を:定義フェーズがすでに割り当てられている、呼び出し段階で値を割り当てられている手段

def func(x, y=3):
    print(x, y)


func(x=1)
func(x=1, y=4444)


def register(name, age,gender='男'):
    print(name, age, gender)


register('wndmd', 18, )
register('茄子', 18, )
register('白给', 18, )
register('小茄子', 18, '女')

場所は強調し、デフォルトパラメータミックスを参加型:

1、位置パラメータがデフォルトパラメータに残されなければなりません

def func(x=1,y):  # 报错
    pass
SyntaxError: non-default argument follows default argument

2、パラメータのデフォルト値は、関数定義の段階が割り当てられます。

デモ:

m = 2

def func(x, y=m): # y==> 2的内存地址
    print(x, y)

m = 33333333333
func(1)

モデルII:

m = [11111111, ]

def func(x, y=m):  # y==> [11111111, ]的内存地址
    print(x, y)


m.append(333333)
func(1)

3、デフォルト値は、任意のデータ型として指定された変数タイプが、推奨しないことができるが

機能理想の状態:通話機能のみの機能そのものと関係を持って、外部からの影響コードから無料

2.4可変長パラメータ(使用*および**)
可変長関数呼び出しを指すは、値の数(引数)は、着信固定されていない
、2つの引数のパラメータが割り当てに使用されています従ってオーバーフロー対応する引数を受け取らなければならないパラメータについて、対応

m = [11111111, ]

def func(x, y=m):
    print(x, y)


m.append(333333)
func(1)

def func(x, y, z, l=None):
    if l is None:
        l = []
    l.append(x)
    l.append(y)
    l.append(z)
    print(l)

func(1, 2, 3, )
func(4, 5, 6, )
new_l = [111, 222]
func(1, 2, 3, new_l)

可変長パラメータ2.4(*および**用法)

可変長関数呼び出しを意味する値(引数)の数は、着信固定されていない、
2つの引数のパラメータが割り当てに使用され、オーバーフローに対応する、実際のパラメータは、対応する形状を有していなければなりません受信するための基準

可変長パラメータ2.4.1位置

I:パラメータ名:location引数オーバーフロー、実際の参加者のオーバーフロー位置を受信するためには、されてすぐに、次のタプル形式、割り当てられたパラメータ名として保存された
*は任意の名前ヒールことができますが、慣習はする必要があります引数

def func(x,y,*z): # z =(3,4,5,6)
    print(x,y,z)

func(1,2,3,4,5,6)

def my_sum(*args):
    res=0
    for item in args:
        res+=item
    return res

res=my_sum(1,2,3,4,)
print(res)

II:と引数、引数で使用することができる最初の引数の値は、*の位置に壊れ

def func(x,y,z):
    print(x,y,z)

func(*[11,22,33]) # func(11,22,33)
func(*[11,22]) # func(11,22)

l=[11,22,33]
func(*l)

III:実パラメータの種類はでマークされています*

def func(x,y,*args): # args=(3,4,5,6)
    print(x,y,args)

func(1,2,[3,4,5,6])
func(1,2,*[3,4,5,6]) # func(1,2,3,4,5,6)
func(*'hello') # func('h','e','l','l','o')

キーワードパラメータ2.4.2変数の長さ

I:パラメータ名:こぼれたキーワード引数を受け取るための手段は、オーバーフローキーワード辞書形式に引数を保存した後、すぐに次のパラメータ名に割り当てられます

ヒールには任意の名前を指定できますが、慣習はkwargsからでなければなりません

def func(x,y,**kwargs):
    print(x,y,kwargs)

func(1,y=2,a=1,b=2,c=3)

II:引数(で使用することができる引数で、踵のみ辞典)、第一の値は、キーワード引数に分割され

def func(x,y,z):
    print(x,y,z)

func(*{'x':1,'y':2,'z':3}) # func('x','y','z')
func(**{'x':1,'y':2,'z':3}) # func(x=1,y=2,z=3)

错误
func(**{'x':1,'y':2,}) # func(x=1,y=2)
func(**{'x':1,'a':2,'z':3}) # func(x=1,a=2,z=3)

III:実パラメータの種類は**であります

def func(x,y,**kwargs):
    print(x,y,kwargs)

func(y=222,x=111,a=333,b=444)
func(**{'y':222,'x':111,'a':333,'b':4444})

ミックス*および**:*引数kwargsからしなければならないことは、前に

def func(x,*args,**kwargs):
    print(args)
    print(kwargs)

func(1,2,3,4,5,6,7,8,x=1,y=2,z=3)

def index(x,y,z):
    print('index=>>> ',x,y,z)

def wrapper(*args,**kwargs): #args=(1,) kwargs={'z':3,'y':2}
    index(*args,**kwargs)
    index(*(1,),**{'z':3,'y':2})
    index(1,z=3,y=2)

wrapper(1,z=3,y=2) # 为wrapper传递的参数是给index用的

オリジナルフォーマット---「概要-----」その色を表示

2.5という名前のキーワード引数(知っています)

2.6の組み合わせ(こちら)

おすすめ

転載: www.cnblogs.com/x945669/p/12519393.html