Home > Python > [Python] Coding Style

[Python] Coding Style

mixiのPythonコミュのpythonらしい命名とは?というトピックにて、
参考になりそうなURLがUPされていたのでメモ。
時間見つけて熟読予定。

間違ったコードは間違って見えるようにする
PEP 8 — Style Guide for Python Code
wxPython Coding Guide

とりあえずPEP8だけざっくり読んだところ、8割ぐらいは守れてるかも、と思ったけど、
バーーーーーーッッッっと書き始めると全部崩壊www
もうちょい明確に自分ルール持っておいたほうがいざという時に良いかなぁ。

ともあれ、要熟読。

Comments:9

hajime 2008/11/14

クラスのメソッドって、大文字で始めるべきかな、小文字で始めるべきかな。

何だかまちまちで困ってます。

tai 2008/11/14

> hajimeさん
僕は小文字推奨派です!!
なんとなく!!

hohehohe2 2008/11/14

自分も小文字〜〜。wxだけ変態な気がします。colourやし(笑

PEP8の感想、参考になった所はいっぱいあるんでそれ以外の所での意見を・・・

– パッケージ内部の import には、相対 import をしないことが強く推奨さ
れている。常に絶対パッケージパスを使用する。

絶対 import のほうが可搬性があり、一般に可読性が高い。

    ???絶対import のほうが可搬性があるってどういうこと?

英語を母国語としない Pythonプログラマの方々へ。あなたの母国語を話さ
ない人が、そのソースコードを決して読まないことを、120%確信できる場
合を除いて、コメントは英語で書いていただきたい。

    お願いしろ(怒

  文末のピリオドの後には、スペースをふたつ配置する。

    なんで?

  mixedCase 方式は、既に広く使われているような文脈(たとえば
  threading.py)で、互換性を保つ場合にのみ許される。

    やだ。

  単純な公開データ属性には、複雑なアクセッサまたはミューテータメソッ
  ドではなく、属性の名前を公表するのが最善である。単純なデータ属性
  が、機能的なふるまいをするよう変更しなければならないとき、
  Pythhon が将来の拡張が容易な方法を提供していることを思い出そう。
  こんなときには、properties を使って、単純なデータ属性にアクセス
  する文法のまま、機能の実装を隠すことができる。

    これにはちょっと自分の意見があって、どのデータが外部から変更されるか
    わからいと可読性が下がるんでhoheローカルルールでデータ変更は関数を
    作ってそれをコールするようにしています。Pythonに染まった人は外部から
    バンバンデータ変更してます。

  注3: 名前修飾はみんなに好かれているわけではない。

    はい嫌い。

hajime 2008/11/14

>wxだけ変態
さすが、お見通しですねw

wxのクラスを継承した後、さて自分のメソッド追加するかって時にいつも困るんですよね。小文字貫くか、wxに合わすか。

tai 2008/11/15

> hohehohe2さん
wxは元々pythonのものじゃないから、そっちのルールに合わせた、って感じなんでしょうかね。
にしてもやりづらいですが・・・w

> 絶対 import のほうが可搬性があり〜
これは非常に謎です。僕の場合、少なくともMaya用のスクリプトは全部相対importになっちゃってます。
可搬性がある=同じ環境の構築が出来てたらモジュール名がぶつかる事が防げるから楽ですよ、ってぐらいのことなんでしょうか。

>文末のピリオドの後には、スペースをふたつ配置する。
え、、、なんか気持ち悪い、、、、

> データ変更は関数を作って〜
僕も大体そんな感じにしてます。
世に言うgetter, setter、って感じの仕組み、なんだとおもいますが、getXXX()とかになってた方が、何やってるのかパッと見分かり易いですし、内部でなんか操作してからデータ渡すにしても、クラスの外には関係ないですし、とか。

非常に参考になりました。
僕もPEP8読んでみます。

> hajimeさん
wxのクラスを継承した時は最高に困りますね、、
僕は確か継承したものに関しては大文字にして、その他は頑として小文字でwww

hajime 2008/11/15

むしろ、小文字で統一して、
「大文字でスタートするメソッドはwxのオリジナルのもの」というルールと思い込んでしまえば
これはこれで自分を納得させることができるかも、と思いました。

tai 2008/11/15

>hajimeさん
!!
それは確かにアリかも。ナイスアイディア!

hohehohe2 2008/11/16

# You should use two spaces after a sentence-ending period, since it makes
# Emacs wrapping and filling work consistently.

Emacsの改行処理が正しく働くそうです。うーん理にかなってるような、無茶苦茶なような・・・

> これはこれで自分を納得させることができるかも、と思いました。
同じ結論に・・・

tai 2008/11/17

>hohehohe2さん
> Emacsの改行処理
な、なるほど、、そんな理由が、、
でも僕はEmacsユーザーじゃないので、無視しても問題ない、、
公開する際に、っていう話ならわかるんですが。

というかEmacsの利点が未だに理解できてません。
いや、理解は出来てます。
でもCtrl+何か、とかAlt+何か、という操作になれることが出来ません、、
うーん、Emacs、、、いつか仲良くなれるんだろうか、、、

> > これはこれで自分を納得させることができるかも、と思いました。
> 同じ結論に・・・じゃあ僕もそれで、、、

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.taikomatsu.com/2008/11/14/python-coding-style/trackback/
Listed below are links to weblogs that reference
[Python] Coding Style from memlog

Home > Python > [Python] Coding Style

Return to page top