そして、パラメータ引数ディアン
1.1パラメータの
定義フェーズブラケットで定義された引数関数は、パラメータが参照、仮パラメータと呼ばれ、基本的に変数名です。
def func(x, y):
print(x)
print(y)
1.2引数
実際のパラメータとして知られている関数呼び出し段括弧パラメータに渡された、本質的に、変数の値で、引数と呼ばれます。
func(1,2)
ディアン2つの位置パラメータ
2.1位置パラメータ
、左から右へ順番に定義の仮パラメータに応じて、関数定義フェーズでは、位置パラメータと呼ばれます。
def func(x, y):
print(x)
print(y)
特徴:位置に応じて定義されたパラメータも少なくとも一つの、値ではなく、複数の送信されなければなりません。
2.2位置引数
関数呼び出し段階では、引数の位置と呼ばれる、右、順次定義引数に任さ。
func(1,2)
特徴:パスを順次に対応するパラメータ値に応じた位置。
水とキーワード引数
関数を呼び出すときに、指定した値にパラメータとして渡されたキー=値の形式で、などのキーワード引数に言及しました。
func(y=2, x=1)
特徴:あなたは限界位置を破るが、それでも指定されたパラメータの割り当てのためにすることができます。
注意:
1.あなたは位置引数とキーワード引数を混在させることができますが、場所の引数は、左のキーワード引数でなければなりません。
2.位置引数は混ぜるとキーワード引数が、パラメータの割り当てを繰り返すことはできませんすることができます。
func(x, y=2)
func(y=2, x) # SyntaxError: positional argument follows keyword argument
func(x, x=1) # NameError: name 'x' is not defined
四個のディアンデフォルトのパラメータ
定義フェーズでは、それが割り当てられています。
def func(x, y=10):
print(x)
print(y)
func(2)
特長:定義フェーズでは、すでに呼び出すときに値を割り当てることはできませんを意味し、割り当てられています。
注意:
1.デフォルトパラメータのパラメータの位置が左にする必要があります。
2.関数定義フェーズにおけるパラメータのデフォルト値は固定されていることを意味する定義フェーズ、一度だけ割り当てられたデフォルトのパラメータ値。
m = 10
def foo(x=m):
print(x)
m = 111
foo() # 10
1.パラメータのデフォルト値は、通常は不変でなければなりません。
2.変数*タイプは、通常、変換方法、参加形状*の方法によって得られた対応する値の機能を破壊するために使用されます。
# 演示形参是可变类型
def register(name, hobby, hobby_list=[]):
hobby_list.append(hobby)
print(f"{name} prefer {hobby}'")
print(f"{name} prefer {hobby_list}")
register('nash', 'read')
register('tank', 'zuipao')
register('jason', 'piao')
nash prefer read' nash prefer ['read'] tank prefer zuipao' tank prefer ['read', 'zuipao'] jason prefer piao' jason prefer ['read', 'zuipao', 'piao']
# 修改形参是可变类型代码
def register(name, hobby, hobby_list=None):
if hobby_list is None:
hobby_list = []
hobby_list.append(hobby)
print(f"{name} prefer {hobby}'")
print(f"{name} prefer {hobby_list}")
register('nash', 'read')
register('tank', 'zuipao')
register('jason', 'piao')
nash prefer read' nash prefer ['read'] tank prefer zuipao' tank prefer ['zuipao'] jason prefer piao' jason prefer ['piao']
ディアン5つのまとめ
引数の適用:個人的な習慣に応じて、
仮パラメータの適用:
1.同じ値またはコールのほとんどは、パラメータは、位置パラメータとして定義されなければならない
多くの場合2.同じコールの値、パラメータはデフォルトパラメータとして定義されなければなりません