Почему help (лямбда) выдает SyntaxError: неверный синтаксис - PullRequest
1 голос
/ 01 июля 2019

Я пытался понять, что Python скажет о лямбде.

print(help(lambda))

Затем я получаю:

print(help(lambda))
                 ^

SyntaxError: неверный синтаксис

Почему?

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Проблема в том, что help принимает объект .

То есть класс, экземпляр класса (объект), функция ...

Но lambda не является ни одной из этих вещей - это просто ключевое слово, которое обозначает определение функции. То же самое для def. Другими ключевыми словами являются, например, for, in.

Если вам нужна помощь по лямбде, вы не можете передать ее на help, вам нужно искать в help(), как сказал taurus05.

Edit: кажется, что если вы передаете строку, help автоматически выполняет поиск. Так что help('lambda'), help('def') и все остальные работают!

0 голосов
/ 01 июля 2019

Функция справки возвращает справку, связанную с модулем, объектом или методом python, если она вызывается с соответствующим аргументом, но без аргумента, она возвращает справку, относящуюся к текущему программному модулю.
Если вам нужна помощь в том, что делает лямбда и как она работает, вы можете сделать это следующим образом:

>>> help()

Welcome to Python 3.7's help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at https://docs.python.org/3.7/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.  To quit this help utility and
return to the interpreter, just type "quit".

To get a list of available modules, keywords, symbols, or topics, type
"modules", "keywords", "symbols", or "topics".  Each module also comes
with a one-line summary of what it does; to list the modules whose name
or summary contain a given string such as "spam", type "modules spam".


help> lambda
Lambdas
*******

   lambda_expr        ::= "lambda" [parameter_list] ":" expression
   lambda_expr_nocond ::= "lambda" [parameter_list] ":" expression_nocond

Lambda expressions (sometimes called lambda forms) are used to create
anonymous functions. The expression "lambda parameters: expression"
yields a function object.  The unnamed object behaves like a function
object defined with:

   def <lambda>(parameters):
       return expression

See section Function definitions for the syntax of parameter lists.
Note that functions created with lambda expressions cannot contain
statements or annotations.

Related help topics: FUNCTIONS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...