前提・実現したいこと
Pythonを学習していますが、ドキュメンテーション文字列について、よくわからない記述があります。
回答・解説をいただけますと幸いです。
わからないところを抜粋
https://docs.python.jp/3/tutorial/controlflow.html
上記URLの4.7.6.ドキュメンテーション文字列のところ
Python のパーザは複数行にわたる Python 文字列リテラルからインデントを剥ぎ取らないので、ドキュメントを処理するツールでは必要に応じてインデントを剥ぎ取らなければなりません。この処理は以下の規約に従って行います。最初の行の 後にある 空行でない最初の行が、ドキュメント全体のインデントの量を決めます。(最初の行は通常、文字列を開始するクオートに隣り合っているので、インデントが文字列リテラル中に現れないためです。) このインデント量と "等価な" 空白が、文字列のすべての行頭から剥ぎ取られます。インデントの量が少ない行を書いてはならないのですが、もしそういう行があると、先頭の空白すべてが剥ぎ取られます。インデントの空白の大きさが等しいかどうかは、タブ文字を (通常は 8 文字のスペースとして) 展開した後に調べられます。
以下に複数行のドキュメンテーション文字列の例を示します:
Python
1>>> def my_function(): 2... """Do nothing, but document it. 3... 4... No, really, it doesn't do anything. 5... """ 6... pass 7... 8>>> print(my_function.__doc__) 9Do nothing, but document it. 10 11 No, really, it doesn't do anything.
何がわからないか
①ドキュメント全体のインデントの量を決める、最初の行の後にある空行でない最初の行とは、
上記ソースコードのpassの行で間違いないですか?
②「このインデント量と"等価な"空白が、文字列のすべての行頭から剥ぎ取られます。」というのは、つまり
passの行のインデントをスペース4つにしているので、他の行でもスペースが4つずつ削られるということでしょうか?
③「インデントの空白の大きさが等しいかどうかは、タブ文字を (通常は 8 文字のスペースとして) 展開した後に調べられます。」
この記述に関しては、全く理解できません。
どこから8という数字がでてきたのでしょうか?
また、インデントの空白の大きさが等しいかどうか調べるというのは、どんなときに行われる(行う?)作業なのでしょうか?
以上、細かなことですが、疑問がぬぐえないので質問させていただきました。
回答よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/29 04:18