Это не возможно, потому что лексический does not make an allowance for it.
funcdef ::= [decorators] "def" funcname "(" [parameter_list] ")" ["->" expression] ":" suite
decorators ::= decorator+
decorator ::= "@" dotted_name ["(" [parameter_list [","]] ")"] NEWLINE
dotted_name ::= identifier ("." identifier)*
parameter_list ::= (defparameter ",")*
| "*" [parameter] ("," defparameter)* ["," "**" parameter]
| "**" parameter
| defparameter [","])
parameter ::= identifier [":" expression]
defparameter ::= parameter ["=" expression]
funcname ::= identifier
Отметьте, что defparameter
- это то, что вы смотрите; он принимает только parameter
и необязательно выражение назначения по умолчанию. Затем токен parameter
принимает только identifier
.
Кроме того, даже если бы вы были, чтобы выразить что-то вроде этого (что ближе, но все же недопустимый синтаксис):
def function(beta=beta + 'aei'):
print beta
beta
является неопределенным, пока вы на самом деле не ввести метод.
Что вы намерены делать? – BrenBarn