Python用のコメント/文字定数をゼヒNo.12761
wata さん 02/08/20 12:46
 
Pythonのソースコードを読み書きしているのですが、コメントのカラー
表示がうまく出来ず、使いづらい思いをしています。
初めは強調表示の正規表現で何とかしようと試みたのですが、複数行に
渡るパターンはサポートされていないとのことなので諦めました。ゼヒ
とも秀丸本体の「コメント/文字定数のカラー表示」にPython用モード
も加えて頂きたいのですが、いかがなものでしょうか?
よろしくご検討下さい。

[ ]
RE:12761 Python用のコメント/文字定数をNo.12762
秀丸担当 さん 02/08/20 17:51
 
>初めは強調表示の正規表現で何とかしようと試みたのですが、複数行に
>渡るパターンはサポートされていないとのことなので諦めました。ゼヒ
>とも秀丸本体の「コメント/文字定数のカラー表示」にPython用モード
>も加えて頂きたいのですが、いかがなものでしょうか?

Pythonというのを調べてみたのですが、複数行のコメントがあるのか
どうか不明でした。
複数行のパターンとはどのようなものでしょうか。
あるサイトでは複数行にするためには#を行数ぶん書かなくてはいけな
いとも書いてあったり、「"""」が複数行コメントという説明もあり、
「"""」複数行文字列という説明もありました。

[ ]
RE:12762 Python用のコメント/文字定数をNo.12767
wata さん 02/08/20 18:38
 
>Pythonというのを調べてみたのですが、複数行のコメントがあるのか
>どうか不明でした。
>複数行のパターンとはどのようなものでしょうか。
>あるサイトでは複数行にするためには#を行数ぶん書かなくてはいけな
>いとも書いてあったり、「"""」が複数行コメントという説明もあり、
>「"""」複数行文字列という説明もありました。

早速のレスありがとうございます。
ご指摘の通り、Pythonでは、#から行末までをコメントとして扱います。
また、「"""」(「'''」でも同じ)でくくられた範囲は通常は複数行の
文字列として扱われるのもご指摘の通りです。ただし、関数やクラスの
定義文では、ヘッダー直下の文字列(複数行に限らず)をドキュメント
文字列と呼び、これは一種のコメントです。
ドキュメント文字列は、何らかのプログラムによって関数仕様書などを
自動生成する際に利用されるもののようです。(←偉そうに書きました
が、実は私もまだまだシロートでして...済みません)
という訳で、関数定義またはクラス定義のヘッダー直下では、複数行の
文字列による複数行コメントがあります。まじめにドキュメントを書い
ているプログラムほど、この手のコメントが入っている可能性が高いと
思います。(一般論はともかく現在私が読んでいるソースでは、ほとん
どの関数にこのドキュメント文字列が入っています。^_^;;)

[ ]
RE:12767 Python用のコメント/文字定数をNo.12773
アルビレオ さん 02/08/20 22:55
 
アルビレオです。

>また、「"""」(「'''」でも同じ)でくくられた範囲は通常は複数行の
>文字列として扱われるのもご指摘の通りです。ただし、関数やクラスの
>定義文では、ヘッダー直下の文字列(複数行に限らず)をドキュメント
>文字列と呼び、これは一種のコメントです。

Pythonのことはまったく知りませんが、気が向いたので調べてみました。

文法の定義上ではコメントと呼べるのは#から行末までの間だけのようです。

「"""」「'''」で囲まれた文字列は、正確にはコメントではなく「複数行記述可能な
文字列定数」ですね。
この中では「"」「'」も特別扱いされません。
文字列定数だけで構成された文はCなどの定数だけの文
  0;
と同様に意味のない(実行されない)文として扱われることを利用してコメントのか
わりに利用しているということでしょう。

ドキュメント文字列も文字列定数であることには変わりないので、普通の文字列定数
と違う色にしたい場合以外は特別扱いする必要はなさそうです。

参考
http://www.hlj.com/~tanoue/Python/doc/ref/strings.html

[ ]
RE:12773 Python用のコメント/文字定数をNo.12777
wata さん 02/08/21 02:22
 
>アルビレオです。
> ( 中略 )
>「"""」「'''」で囲まれた文字列は、正確にはコメントではなく「複数行記述可能
>な文字列定数」ですね。
>この中では「"」「'」も特別扱いされません。
>文字列定数だけで構成された文はCなどの定数だけの文
>  0;
>と同様に意味のない(実行されない)文として扱われることを利用してコメントの
>かわりに利用しているということでしょう。
>
>ドキュメント文字列も文字列定数であることには変わりないので、普通の文字列定
>数と違う色にしたい場合以外は特別扱いする必要はなさそうです。
>
>参考
>http://www.hlj.com/~tanoue/Python/doc/ref/strings.html

レスありがとうございます。おっしゃるようにドキュメント文字列は、
「正確にはコメントではな」いようです。この点は私の誤解でした。
m(_ _)m
いずれにせよ私の望みは、ご指摘の通りドキュメント文字列も普通の
文字列定数も同じで構いませんので、複数行の文字列を文字列定数と
して扱ってもらえばそれで十分です。

( ところで、ちょっと本筋からは離れますが、ドキュメント文字列と
関数定義中に任意に挿入可能な無意味な定数行とは、処理系では区別
しているようです。
http://www.hlj.com/~tanoue/Python/doc/ref/types.html#l2h-125
このウエブサイトは勉強になりました。早速「お気に入り」に登録し
ました。^_^ )

[ ]
RE:12777 Python用のコメント/文字定数をNo.12787
秀丸担当 さん 02/08/21 19:05
 
>いずれにせよ私の望みは、ご指摘の通りドキュメント文字列も普通の
>文字列定数も同じで構いませんので、複数行の文字列を文字列定数と
>して扱ってもらえばそれで十分です。

検討しておきます。
c言語でも複数行文字列を表すのに行末に\を書く方法があるのですが、
秀丸は対応してません。
やるとすれば、複数行文字列はコメントということになるかもしれま
せん。

[ ]