Python - Parameter

14715 ワード

Pythonで関数を定義する場合は、パラメータ(引数)を入力として、ある計算や機能を実行して結果値(output)を出します.
(オプション)
return:関数の実行時に成果物がポップアップされます.
parameter:関数の作成時に関数名の横に置くパラメータ.
今日のトピックでは、関数に渡されるパラメータについて説明します.
Pythonはパラメータのタイプです.

1.Regular positional argument

def name_function(my_name, your_name)

name_function("고기맨","고기몬")
=>my name="肉MAN/your name="肉MON"
値が保存されます.(順番に)
デフォルト変数を表すRegular positionパラメータ.
my nameとyour nameに任意のタイプの値を入力できます.

2. Keyword Argument

def name_function(my_name, your_name)

name_function(your_name="고기맨", my_name="고기몬")
関数を使用する場合は、パラメータ変数名を指定して値を入力できます.これにより、可読性や上記のビューのように値の順序を変更しても、キー値に基づいてvalueが格納されるため、非常に有用である.

3. Positional Arg + Keyword Arg

def name_function(my_name, your_name)

name_function("고기맨", your_name="고기몬")
位置ArgとキーワードArgを混在させることができます.
なお、位置Argの順序は、関数を定義する際のパラメータ位置と同じでなければならない.
Errorの例
def name_function(my_name, your_name)

name_function(your_name="고기몬", "고기맨")
このように入力すると、name=「gimon」がmy nameに入る必要がある場所にあるため、エラーが発生します.
keyとpositionalargsを混合して使用する場合は、順序に注意してください.

4. Parameter Default Value

def name_function(my_name, your_name="고기맨")

name_function(my_name="고기몬")
関数の作成時に、パラメータにdefault値を定義して、関数の実行時に2つのパラメータを要求できますが、1つのパラメータ値しか超えません.

質問です。


なぜ関数を定義するときにnon-defulfault valueparameterの前にdefault valueparameterを定義できないのですか?


Errorの例
def name_function(your_name="고기맨", my_name)

name_function("고기몬")
my nameで「gimon」という値を定義したいのですが、関数パラメータの位置は無効です.
例に示すように、パラメータ内部のパラメータのdefaultパラメータが前にある場合、パラメータが入る位置が曖昧になります.
これらのことを防止するためには、non-default valueparameterを前の部分として関数に設計する必要があります.

質問です。


位置パラメータと可変長パラメータのエラーの確認と修正

def func_param_with_var_args(name, *args, age):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)

func_param_with_var_args("정우성", "01012341234", "seoul", 20)
上のコードを実行します.

TypeError:キーワードargが漏れています.
これは,中間に可変パラメータ(*arg)があることを意味するので,Pythonは可変パラメータがどこで終わるか分からない.
したがって、最後に可変パラメータを書き込むことで問題を解決することができる.

質問です。


可変キーワード引数(variablelength keywordarguments)の位置エラーを修正した後、正常に出力した結果は?


Errorの例
def func_param_with_kwargs(name, age, **kwargs, address=0):
    print("name=",end=""), print(name)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)

func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")
可変キーワードパラメータを中央に配置すると

SyntaxErrorを返します.これにより、前述の問題2号と同じ脈絡エラーが発生します.そこで、最後に可変キーワードパラメータを移動します.

質問です。


4.位置パラメータとキーワード可変キーワードパラメータ(variablelength keywordarguments)の**位置エラーを修正し、正常に出力した結果は?


Errorの例
def mixed_params(name="아이유", *args, age, **kwargs, address):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)

mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")
上記のコードを実行すると、

パラメータの順序が乱れているため、エラーメッセージが表示されます.
適切な場所に移動できる場合は、
def mixed_params(age, name="아이유", *args, address, **kwargs)
できるはずです.
次の画像を参照すると、パラメータの順序がわかるはずです.

Python Function Definition, Arguments Kind and Order