[TIL]Python関数(parameters、default value、arguments)


1.デフォルト(position arguments)

def func(a, b, c):
    print(a, b, c)
    
func(1, 2, 3)
関数には伝達値がある場合もあれば、伝達値がない場合もあります.転送値がある場合は、
関数を実行するときは、関数パラメータと同じパラメータを追加する必要があります.
順番に聞いて!

2.デフォルト2(キーワードarguments)

def func(a, b, c):
    print(a, b, c)
 
x = func(a=1, b=2, c=3)
y = func(c=4, a=1, b=3)
順序にかかわらず、名前を指定して値を割り当てることができます.
このように組み合わせると、位置に関係なく、希望の値に達することができます!

3.1号2号海鮮麺

def func(a, b, c):
    print(a, b, c)
 
x = func(1, 2, c=3)
y = func(1, b=2, c=3)
z = func(b=2, c=3, 1)
x、y出力成功
しかし、zは文法エラーが発生します.
内容から見ると.
SyntaxError: positional argument follows keyword argument
位置因数はキーワード因数の後だそうです.
伝達値1がaのパラメータなのか、3番目のパラメータcのパラメータなのか分からないからである.
このように混合して使用する場合は,位置因数>キーワード因数の順に使用すべきである.

4. default value

def func(a=1, b=2, c=3):
    print(a, b, c)

x = func()
y = func(3,2,1)
z = func(3,2)
宣言関数からパラメータ値を指定する方法があります.
関数を呼び出すときに引数の値を入力しますか?
上書きされました.
ここでは、デフォルトパラメータとキーワードパラメータを区別します.
デフォルトのパラメータは、関数を宣言するときに値を指定します.
キーワードパラメータは、関数を呼び出すときに値を指定します.

5. non-default, default value


パラメータのデフォルト値(一番上の1番)をnon-defaultパラメータと呼びます.
def func(a, b=2, c=3):
    print(a, b, c)

y = func(3,2,1)
z = func(3,2)
これはエラーを引き起こすことはありません.
def func(a=1, b=2, c):
    print(a, b, c)

y = func(3,2,1)
z = func(3,2)
次の構文エラーが発生しました.
SyntaxError: non-default argument follows default argument
一緒に使えば
non-defult引数、デフォルト引数の順序として定義する必要があります.
デフォルト以外の値は必須ですが、デフォルト値は必須ではありません.
密接な関係にあるので、違約金をあげてもいいし、あげなくてもいいですが、違約金を払わなければなりません.
この角度から例を挙げると、関数を定義するときにまずポーリング値が指定されます.
次に、関数呼び出しで引数を指定します.
最初に与えられたパラメータがデフォルト値を上書きさせるか、それとも後のデフォルト値を上書きさせるか分かりません.

ソース:https://getkt.com/blog/python-keyword-only-arguments/

質問です。

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

func_param_with_var_args("정우성", 20, "01012341234", "seoul")
  • 非デバッガ>位置パラメータのデバッガ順宣言関数
  • 質問です。

    def func_param_with_kwargs(name, age, address=0, **kwargs):
        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")
  • 非デバッガ>デバッガ>位置別バカ順序宣言関数
  • 関数を呼び出すときは不変(キーワードパラメータを使用)
  • 質問です。

    def mixed_params(age, name="아이유", *args, address, **kwargs):
        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")
  • 非デバッガ>デバッガ>*args>キーワードパラメータ>*kwargs