[파이썬 functools.partial 일부 기능] --2019-08-16 11시 34분 49초

원본 : http://blog.gqylpy.com/gqy/349

"

파이썬 functools모듈 유용한 다양한 기능 중 하나가 제공 偏函数(일부 기능). 동일하지 여기 부분 함수 수학적 의미 그 일부 기능을 참고.

functools.partial우리는 부분적인 기능, 다음 예제를 만들 수 있습니다 :

"""自己定义的偏函数"""

def int1(x, base=2):
    return int(x, base)

print(int1('10000000'))  # 128


# =======================================
# =======================================


"""通过functools.partial定义的偏函数"""

import functools

int2 = functools.partial(int, base=2)

print(int1('10000000'))  # 128

# 上面仅仅是把base参数重设默认值为2,所以还是可以指定base的值的
print(int1('10101010', base=10))  # 10101010

그래서, 간단한 요약 functools.partial역할 (즉, 기본값을 설정), 함수는 새를 돌려 고정의 기능에 몇 가지 매개 변수를 넣어하는 것입니다 밖으로 새로운 기능을 쉽게 될 것입니다.

당신은 부분 당신이 실제로받을 수있는 기능을 만들 때 函数对象, *args그리고 **kwargs세 개의 매개 변수
***
이 같은를 :

int2 = functools.partial(int, base=2)

실제로 주요 파라미터의 INT () 함수에 고정 base즉을 :

int2('10000000')

그것은 동일합니다 :

kwargs = {'base': 2}
int('10000000', **kwargs)


또 다른 예 :

max2 = functools.partial(max, 10)

사실, 것 10같은 *args부분을 자동으로 왼쪽에 추가, 그 말을하는 것입니다 :

max2(2, 3, 4)

그것은 동일합니다 :

args = (10, 2, 3, 4)
max(*args)

결과 10.

개요

매개 변수의 너무 많은 수를 통과 할 때 필요 단순화 할 때, 사용이 functools새로운 기능을 만들 수 있습니다,이 새로운 기능은 훨씬 간단하게 전화 할 때 살던 원래의 함수 매개 변수의 고정 부분이 될 수 있습니다.
"

원본 : http://blog.gqylpy.com/gqy/349

추천

출처www.cnblogs.com/bbb001/p/11362877.html