Python関数の基礎10:位置パラメータとキーワードパラメータ

  1. 位置パラメータとキーワードパラメータ

実際のパラメータは、さまざまな転送方法に従って、位置パラメータとキーワードパラメータに分けられます
。1)位置パラメータ
が関数を呼び出すとき、実際のパラメータと正式なパラメータを相互に対応させます(最初の実際のパラメータは最初の正式なパラメータに割り当てられ、2番目の実際のパラメータは最初の正式なパラメータに割り当てられます) 1つの実際のパラメーターを使用して2番目の正式なパラメーターに値を割り当てます...)
形式:データ1、データ2、データ3、…

位置参数
func1(10, 20, 30)       # x:10, y:20, z:30
func1(10, 30, 20)       # x:10, y:30, z:20

2)キーワードパラメータ
実際のパラメータと正式なパラメータをキーワード(正式なパラメータ名)で対応させます。
形式:正式なパラメータ名1 =データ1、正式なパラメータ名2 =データ2、..。

关键字参数
func1(x=100, y=200, z=300)   # x:100, y:200, z:300
func1(z=30, x=10, y=20)     # x:10, y:20, z:30
# func1(x=100, y=200, y=300)    # 报错!

3)キーパラメータと位置パラメータの混合
使用。混合する場合、位置パラメータはキーワードパラメータの前になければなりません。

*パラメータは、複数のパラメータが存在する可能性があることを意味します

混用
func1(10, z=30, y=20)    # x:10, y:20, z:30
# func1(x=20, 40, z=60)   # 抱错!位置参数必须在关键字参数的前面

print(10, end='a')
print(10, 20, 30, sep=',')

def print(*data, end='\n', sep=' '):
    pass
sorted([1, 23, 8], reverse=True)
  1. パラメータのデフォルト値
    関数を定義するときに、「正式なパラメータ名=データ」の形式でパラメータにデフォルト値を割り当てることができます。関数を呼び出すとき、デフォルト値のパラメータを割り当てることはできません。
    注:デフォルト値のパラメータは、デフォルト値のないパラメータに含まれている必要があります。後ろに
def func2(x=1, y=10, z=100):
    print(f'x:{x}, y:{y}, z:{z}')


func2(1, 2, 3)    # x:1, y:2, z:3
func2(10, 20)    # x:10, y:20, z:100
func2(10)
func2()

func2(y=200)
func2(z=300)

3.パラメータタイプの説明
関数を定義するときに、パラメータタイプを説明できます

  1. デフォルト値、デフォルト値のタイプ、およびパラメータータイプの説明のタイプを割り当てます。
  2. 正式なパラメータ名:データタイプ
def func5(x: list) -> None:
    x.append('100')
func5([])

4.可変長パラメーター
正式パラメーターの前に**を
追加または追加して、このパラメーターを可変長パラメーターにします。可変長パラメータの正式なパラメータは、同時に複数の実際のパラメータを受け入れることができます1)
*が付いた可変長パラメータはタプルになり、タプル内の要素は対応する実際のパラメータです

注:。機能のあるAは、パラメーターの後ろにバンドがない場合、*キーパラメーターなしで使用する必要がある場合、パラメーターなしで同時に存在する可能性があります。Bベルト/ *パラメーターは位置パラメーターを使用する必要があります

2)
/ **の可変長パラメーター/ **の可変長パラメーターは辞書になります。呼び出すときは、キーワードパラメーターを使用してパラメーターを渡します。各キーワードは辞書のキーであり、キーワードの背後にあるデータは辞書です。の値

注:a。定義する場合、固定長パラメーターは/ **可変長パラメーターの前に配置する必要があります
。b。/*および/ **を含む可変長パラメーターは同時に存在できますが、/ *は/ **の前に配置する必要があります。(同時に存在する場合、関数を呼び出すときにより柔軟にすることができます)

def func6(*x):
    print(f'x:{x}')


func6()
func6(10)
func6(10, 20)
func6(1, 2, 3, 4, 5)
# 练习:定义一个函数,可以求多个数的和
# sum1(10, 20)  sum1(10, 20, 30)
def sum1(*num):
    s = 0
    for x in num:
        s += x
    print(s)

def func10(x, **y):
    print(f'x:{x}, y:{y}')


func10(10, a=20, c=30, d=40)    # x:10, y:{'a': 20, 'c': 30, 'd': 40}
func10(a=1, b=2, c=3, x=100)    # x:100, y:{'a': 1, 'b': 2, 'c': 3}

def func8(*x, y):
    print(f'x:{x}, y:{y}')


func8(1, 2, 3, y=10)

おすすめ

転載: blog.csdn.net/SaharaLater/article/details/111564450