ピリオドがピリオド(またはピリオド)の前に暗黙の行継続を許可しない理由はありますか?つまり、なぜピリオド暗黙の行継続しないのですか?
これはPythonのいくつかの機能と競合しますか?メソッド連鎖APIの登場により、これは素晴らしい機能のようです。
ピリオドがピリオド(またはピリオド)の前に暗黙の行継続を許可しない理由はありますか?つまり、なぜピリオド暗黙の行継続しないのですか?
これはPythonのいくつかの機能と競合しますか?メソッド連鎖APIの登場により、これは素晴らしい機能のようです。
これらの状況はどちらも、有効で完全な構造につながる可能性があるため、引き続き続けるとパーサーが複雑になります。期間は、メソッド呼び出しの中で有数可能な場合には
print 3.
1415926
print 'Hello, world'
.lower()
'.lower()'はそれ自体が有効で完全な構造体とはどうですか? –
そうではありません。しかし、「プリントは、こんにちは、世界」です。 –
は、Pythonはparentheticals()内の行の継続を許可するので、あなたは試してみてください:(「なぜ?」)
(data.where(lambda d: e.name == 'Obama').
count())
私はそれがあなたの質問に答えていないけど、多分それは便利です。
最後に「\」を使用してください。 (ただし醜い)期間の後にわから
data.where(lambda d: e.name == 'Obama').\
count()
はないが、あなたの例では、期間前に改行が独自に有効な文である最初の行につながります。そしてPythonは、最初の行が文であるかどうかを知るために、2行目を先読みする必要があります。
言語構文を定義するときの目標の1つは、先読みを必要とするあいまいさを伴わずに解析できることでした。
対話型インタプリタで迷惑になるのは、1行ごとに2回Enterキーを押すだけで、Pythonは文を完成させることが分かり、そのあとに.foo()
を置くつもりはないということです。
それだけで単独行の末尾に発生するため、それは常に(?)シンタックスエラーになります。それで、それを継続を開始するものとして読むことは、あいまいではないでしょう。
しかし、Pythonは一般的に、そこに不完全なバイナリ演算子があるため、行を続行しません。たとえば、次は有効ではありません。2番目の例では
2 +
4
、最初の行は、それ自体で有効であり、Pythonは「念のため」次の行を探しすることは本当に矛盾だろうものがあります。
私は、メソッド呼び出しの開始括弧の後に改行します。
{中括弧やセミコリンによらず、末尾の文に改行を使用しているため}
です。 [残念ながら、投稿の長さは最低15文字ですので、私は自分のコメントを短くてうれしく思います。それが今私がしたことを見てください。恐ろしいです。] –
'import this'は" Explicitは暗黙的です "と言っています。 –