여기 내 은 추측 된 내용입니다 .에 대해 알고 있습니다. 실제로 파이썬의 REPL 코드를 보지 않았습니다. 알다시피, 파이썬 대화 형 셸은 선행 내용을 파싱하여 추가 입력이 필요할 때 ...
프롬프트를 사용합니다. 예를 들어
:
>>> if True:
...
... if ... :<newline>
때문은 lexical structure of Python에 따른 블록 들여 와야. 당신이 공백을 제외하고 비어 선, 예와 같은 약간 이상한 행동을 유발할 수
주의 사항 : 파이썬의 어휘 규칙에 따라
>>> <space><enter>
...
, 대부분의 상황에서 라인은 공백을 포함하는 pass
문 또는 빈 블록으로 처리해서는 안되지만 마치처럼 나타나지 않는 것처럼 으로 처리해야합니다. (각 라인의 끝에 공백의 부족을 강조 |
로)이 예제를 가지고 :이 코드를 실행하면
if False:|
|
print "Foo"|
# comment|
print "Bar"|
|
print "Baz"|
, 그것은 단지 Baz
를 인쇄합니다. 첫 번째 두 print
문은 앞뒤에 비어있는 빈 줄 또는 주석 전용 줄이 있다는 사실에도 불구하고 중간에 동일한 블록 의 일부로 처리됩니다.
기본적으로 파이썬 인터프리터가 비어 있거나 주석 만 포함하는 행을 읽으면 행을 전혀 읽지 않은 것처럼 가장합니다. 대화 형 인터프리터는 기본적으로이 동작을 따릅니다. 즉, 입력을 기다리는 중이고 입력이 없으면 더 많은 입력을 요구합니다. 따라서 ...
입력 프롬프트가 계속됩니다.
가 전혀 라인의 경우 (line==''
EOL 문자 (들)을 잘라낸 후) 특수 맡았다 대화 형 인터프리터로라고하지만,이 특수 케이스가 포함 라인 확장하지 않은 것 같습니다 주석 및/또는 공백 만 사용하십시오.
성명서를 기다리고 있습니다. 그것은 주석을 건너 뛰고 나머지 문장을 요구합니다 (그러므로'...'). 명령에 줄 연속 또는 불균형 괄호가 포함 된 경우와 매우 비슷합니다. – isedev
나는 여기서 더 좋은 질문은 왜 명령 행을 사용하여 코멘트를 입력하려고 하는가하는 것이다. – KronoS
문제가된다면,'foo = 4 # foobar' 후에 당신의 의견을 말하지 않을까요 –