Используя существующую функцию, как определить новую функцию с другими необязательными аргументами по умолчанию? - PullRequest
1 голос
/ 27 мая 2019

С учетом функции fxn1 ()

def fxn1(a,b=1):
    return a*b

Я бы хотел сделать что-то вроде:

fxn2=fxn1(.,b=2)

Словом, я хотел бы создать новую функцию fxn2 (), которая идентична fxn1 (), но с другими значениями по умолчанию необязательных аргументов. Я не смог найти ответ / направление в Интернете.

Ответы [ 4 ]

2 голосов
/ 27 мая 2019

Вы можете использовать functools.partial ( официальный документ ):

from functools import partial

def fxn1(a,b=1):
    return a*b

fxn2 = partial(fxn1, b=2)

print(fxn2(4))

Печать:

8
2 голосов
/ 27 мая 2019

Вы можете использовать частичную функцию:

from functools import partial
fxn2 = partial(fxn1, b=2)

fxn2(1)
1 голос
/ 27 мая 2019
def fxn1(a,b=1):
    return a*b

def fxn2(a,b=2):
    return fxn1(a,b)
0 голосов
/ 27 мая 2019

Самый простой способ будет

def fxn2(a, b=2):
    return fxn1(a, b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...