Language Reference -> Compound statements -> Function definitions 이 있습니다
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
문법에 의사가 파서를 생성하는 데 사용 된 것과 항상 같지는 않습니다. 후자는 읽기가 어려울 수 있습니다. 컴파일 할 때 일부 제약 조건 만 적용되므로 구문 분석기 문법도 불완전 할 수 있습니다. 위의 예는 일단 기본값이 주어지면 모든 후속 위치 매개 변수에 기본값이 있어야한다는 제약 조건을 포착하지 않습니다. 매개 변수 목록의 제작에는 다른 문제가있는 것처럼 보입니다. '
데프 ID 결과, 물건,하지만 대부분 자신의 스타일을 사용하여 제약 조건을 추가하고 옵션 인 최종, 후행 쉼표의 문제를 무시하고'
장식, 주석을 제거하여 단순화하고, 모든 "* ('(ID) * (ID = 발) *') ':
당신이 당신의 입력을 완료 했습니까 (()의이 (그룹화에서 그들을 구별하기 위해 인용해야 함)의 문자 적.) 질문? –
예 Ryne 질문입니다. 함수에 EBNF를 쓸 수 있습니까? –
[The Python Language Reference] (htt ps : //docs.python.org/3/reference/index.html)? 그것은 모두 거기에 있어야합니다. – 5gon12eder