Para ser sincero, já ouvi esse conceito antes, mas não o estudei profundamente, e não o usei ... Mas quando alguém perguntar, é só verificar e registrar.
Verificando as informações, descobri que isso é simples: uma função com valores padrão para alguns parâmetros, Orz. Olhando para trás, para seu nome em inglês, aplicativo de função parcial, emm, é compreensível. Quanto à origem do chinês, não sei.
Veja a definição oficial:
- A função é fixar os parâmetros com antecedência antes que a função seja chamada.
Por que inventou essa coisa?
- Menos parâmetros
- Mais curta
- Mais conciso
Para ser franco, é tudo uma coisa ...
Então, vamos dar uma olhada primeiro, se quisermos implementar essa função nós mesmos, o que faremos?
Veja o seguinte exemplo
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [105]: def test(x, y):
...: return x*y
...:
...:
In [106]: test(2, 3)
Out[106]: 6
In [107]: def test(x, y=2):
...: return x*y
...:
In [108]: test(2)
Out[108]: 4
Simples, certo?
Existe uma solução pronta? Claro que existe, essa é a biblioteca de funções
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [109]: from functools import partial
In [110]: def test(x, y):
...: return x*y
...:
In [111]: new_test = partial(test, y=3)
In [112]: new_test(3)
Out[112]: 9
Só uma coisinha ...
Ele tem outros benefícios?
Sim, é mais reutilizável.
Por exemplo, se você deseja alterar o valor padrão de y para 4, você não precisa fazer nenhum teste def (x, y = 4) sozinho, você pode declarar um diretamente e continuar a usá-lo.