я создаю функцию с помощью лямбда-выражения, как показано ниже: - PullRequest
0 голосов
/ 13 октября 2019

Я создаю функцию с помощью лямбда-выражения, как показано ниже:

f=lambda x,y:True if x!='' else False if y!=''  else None

теперь, когда я использую эту функцию, передавая в нее значения словаря

inv_d={'B2BNo':'','B2CNo':B2B-0038} 
print(f(inv_d['B2BNo'],d['B2CNo'])

, она выдает ошибку: -

_io.TextIOWrapper' object is not callable

Не знаете, что я здесь не так делаю?

1 Ответ

0 голосов
/ 13 октября 2019

Я бы настоятельно не поощрял соблазн писать функции в виде онлайновых назначений лямбд. Вложенные троицы также имеют огромный кодовый запах. Проще писать и легче отлаживать, если пишешь

def f(x, y):
    if x: return True
    if y: return False
    return None

Должно работать следующее:

inv_d = {'B2BNo':'',
         'B2CNo':'B2B-0038'}
print(f(inv_d['B2BNo'], inv_d['B2BNo']))
...