Python - Parameter
14715 ワード
Pythonで関数を定義する場合は、パラメータ(引数)を入力として、ある計算や機能を実行して結果値(output)を出します.
(オプション)
return:関数の実行時に成果物がポップアップされます.
parameter:関数の作成時に関数名の横に置くパラメータ.
今日のトピックでは、関数に渡されるパラメータについて説明します.
Pythonはパラメータのタイプです.
値が保存されます.(順番に)
デフォルト変数を表すRegular positionパラメータ.
my nameとyour nameに任意のタイプの値を入力できます.
なお、位置Argの順序は、関数を定義する際のパラメータ位置と同じでなければならない.
Errorの例
keyとpositionalargsを混合して使用する場合は、順序に注意してください.
Errorの例
例に示すように、パラメータ内部のパラメータのdefaultパラメータが前にある場合、パラメータが入る位置が曖昧になります.
これらのことを防止するためには、non-default valueparameterを前の部分として関数に設計する必要があります.
TypeError:キーワードargが漏れています.
これは,中間に可変パラメータ(*arg)があることを意味するので,Pythonは可変パラメータがどこで終わるか分からない.
したがって、最後に可変パラメータを書き込むことで問題を解決することができる.
Errorの例
SyntaxErrorを返します.これにより、前述の問題2号と同じ脈絡エラーが発生します.そこで、最後に可変キーワードパラメータを移動します.
Errorの例
パラメータの順序が乱れているため、エラーメッセージが表示されます.
適切な場所に移動できる場合は、
次の画像を参照すると、パラメータの順序がわかるはずです.
(オプション)
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
Reference
この問題について(Python - Parameter), 我々は、より多くの情報をここで見つけました https://velog.io/@gogimon/pythonargsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol