フォーム間の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用的
オリジナルフォーマット---「概要-----」その色を表示