1.減少可調用對象的參數個數,使用functools.partial凍結參數 使用functools.partial(),可以固定一個或者多個值,減少調用參數。 2.給函數參數增加元信息 函數聲明中的各個參數可以在 : 之後增加註解表達式。如果參數有預設值,註解放在參數名和 = 號之間。如果想註解返 ...
1.減少可調用對象的參數個數,使用functools.partial凍結參數
使用functools.partial(),可以固定一個或者多個值,減少調用參數。
>>> def spam(a, b, c, d): ... print(a, b, c, d) ... >>> from functools import partial >>> s1 = partial(spam, 1) # 把a 的值設為 1 >>> s1(2, 3, 4) 1 2 3 4 >>> s1(4, 2, 7) 1 4 2 7 >>> s2 = partial(spam, d=42) # 把 d 的值設為 42 >>> s2(1, 2, 3) 1 2 3 42 >>> s2(3, 2, 3) 3 2 3 42 >>> s3 = partial(spam, 1, 2, d=42) # a = 1, b = 2, d = 42 >>> s3(2) 1 2 2 42 >>> s3(28)
2.給函數參數增加元信息
函數聲明中的各個參數可以在 : 之後增加註解表達式。如果參數有預設值,註解放在參數名和 = 號之間。如果想註解返回值,在 ) 和函數聲明末尾的 : 之間添加 -> 和一個表達式。
表達式可以是任何類型。註解中最常用的類型是類(如 str 或 int)和字元串 (如 'int > 0')。
>>> def add(x:int, y:int) -> int: ... return x + y ... >>> add(2, 4) 6 >>> help(add) Help on function add in module __main__: add(x:int, y:int) -> int >>> add.__annotations__ {'x': <class 'int'>, 'y': <class 'int'>, 'return': <class 'int'>} #函數註解只存儲在函數的 annotations 屬性中。