読み取り<br>何時レコード
休みに何行かのコードを書きたいと思って、どうせ時間に余裕があるなら、まず『google python style guide』を見て、普段コードを書いているときの間違いを選んだほうがいいと思って、そこで本当にいくつかの習慣と知識の抜け穴を見つけて、ここに記録します.
1.default argument values pythonで定義した関数は、パラメータごとにデフォルト値を与えることができ、デフォルト値は文字列、数字、None、もちろんlist[]やdict{}などであることができます.デフォルト値が上記の2つの可変オブジェクトである場合、関数のロード時にデフォルトパラメータ値が初期化されるため、関数呼び出しのたびに初期化されるのではなく、いくつかの問題が発生する可能性があります.次のコードを考慮します.
問題点:
(このコードはhttp://blog.csdn.net/delphiwcdj/article/details/5719470参照)
2.スペースの使用(whitespace)
コードの適量のスペースはコードのフォーマットがはっきりしていて、もっと読みやすいです.しかし、スペースを過剰に使用すると、読書、メンテナンスのコストが高くなります.
2.1'()、'{}'、'[]にスペースを入れないでください.
2.2カンマ(comma)、セミコロン(semicolon)、コロン(colon)の前にスペースを入れないでください.これらの記号の(記号が行の末尾にないことを前提とします)の後ろにスペースを付けることができます.
2.3関数呼び出し、配列選択、dict選択の左かっこの前にスペースを入れないでください.
2.4>,=,==などのオペレータの両側にスペースがあることが望ましいが、関数宣言のdefault arguments valueと関数呼び出し伝達パラメータの場合=両側にスペースがない:
2.5メンテナンスコストが増加しないように、1行のスペースで垂直位置を制御しないでください.
3文字列に関するいくつかの接続操作:
3.1 2つまたはいくつかの文字列を直接つなぎ合わせるときはa+bを使うことができ、そうでなければ'%s,%s.'%(a,b)を使うほうが適切である.
3.2体内文字列の接合を循環するときは、まず断片を配列に格納し、join接合を行うことが望ましい.これにより、一時stringオブジェクトの生成が絶えず減少し、実行時間が短縮されます.
4 TODOコメント:
コードがなくて一度に完璧に書くことができて、多くの実際の状況も確かに私たちに一時的に80%しかできないことを要求して、だからTODO注釈はとても重要です.TODOコメントでは、このコードが将来どのような改善が必要なのか、なぜ現在の一時的な方法を採用しているのかを他の人にも伝えることができます.
標準のフォーマットは、主に検索を容易にするために使用されます.
最後の終わりの言葉を見ても感動しましたが、なぜコード作成規範(プロトコル)を作るのでしょうか.私たちはどうすればいいですか?
1.コードが存在する環境のスタイルを維持します.既存のコードに新しいコードを追加するときは、まず既存のコードのスタイルを熟知しなければならない.例えば、インデント、スペースの使用、それから自分のコードを追加して、新しいコードのスタイルが突き出ないようにして、読者に迷惑をかけないようにしなければならない.
2.コード作成仕様の意味は、他の人(または自分)がコードを読むときに、このコードがどのように書かれているのかではなく、コードの内容が何なのかに集中させることです.チームワークには特にこれらが必要です.
3.最も重要な点は、あるスタイルを一貫して堅持することです.
-eof-
1.default argument values pythonで定義した関数は、パラメータごとにデフォルト値を与えることができ、デフォルト値は文字列、数字、None、もちろんlist[]やdict{}などであることができます.デフォルト値が上記の2つの可変オブジェクトである場合、関数のロード時にデフォルトパラメータ値が初期化されるため、関数呼び出しのたびに初期化されるのではなく、いくつかの問題が発生する可能性があります.次のコードを考慮します.
#default arguments values
def f(a, b=1):
pass
#
f(1) # b , 1
f(1, b=2) # b 2
問題点:
#default arguments values []
def f(a, l=[]):
l.append(a)
return l
#
f(1)
>>> [1]
f(2)
>>> [1, 2]
f(3)
>>> [1, 2, 3]
#
def f(a, l=None):
if not l: l = []
# ...
(このコードはhttp://blog.csdn.net/delphiwcdj/article/details/5719470参照)
2.スペースの使用(whitespace)
コードの適量のスペースはコードのフォーマットがはっきりしていて、もっと読みやすいです.しかし、スペースを過剰に使用すると、読書、メンテナンスのコストが高くなります.
2.1'()、'{}'、'[]にスペースを入れないでください.
Yes: spam(ham[1], {eggs: 2}, [])
No: spam( ham[ 1 ], { eggs: 2 }, [ ] )
2.2カンマ(comma)、セミコロン(semicolon)、コロン(colon)の前にスペースを入れないでください.これらの記号の(記号が行の末尾にないことを前提とします)の後ろにスペースを付けることができます.
Yes:
if a == b:
print x, y
No:
if a == b :
print x , y
2.3関数呼び出し、配列選択、dict選択の左かっこの前にスペースを入れないでください.
Yes:
spam(1)
list[index] = dict['key']
No:
spam (1)
list [index] = dict ['key']
2.4>,=,==などのオペレータの両側にスペースがあることが望ましいが、関数宣言のdefault arguments valueと関数呼び出し伝達パラメータの場合=両側にスペースがない:
Yes:
def f(a=1, b=2):
pass
f(a=3, b=4)
No:
def f(a = 1, b = 2):
pass
f(a = 3, b = 4)
2.5メンテナンスコストが増加しないように、1行のスペースで垂直位置を制御しないでください.
Yes:
class AaBb(Entity):
a = Field(String(100), default='aa') # name
b = Field(Integer(8)) #number
No:
class AaBb(Entity):
a = Field(String(100), default='aa') # name
b = Field(Integer(8)) #number
3文字列に関するいくつかの接続操作:
3.1 2つまたはいくつかの文字列を直接つなぎ合わせるときはa+bを使うことができ、そうでなければ'%s,%s.'%(a,b)を使うほうが適切である.
3.2体内文字列の接合を循環するときは、まず断片を配列に格納し、join接合を行うことが望ましい.これにより、一時stringオブジェクトの生成が絶えず減少し、実行時間が短縮されます.
4 TODOコメント:
コードがなくて一度に完璧に書くことができて、多くの実際の状況も確かに私たちに一時的に80%しかできないことを要求して、だからTODO注釈はとても重要です.TODOコメントでは、このコードが将来どのような改善が必要なのか、なぜ現在の一時的な方法を採用しているのかを他の人にも伝えることができます.
標準のフォーマットは、主に検索を容易にするために使用されます.
# TODO(Zeke): change this to use relations
最後の終わりの言葉を見ても感動しましたが、なぜコード作成規範(プロトコル)を作るのでしょうか.私たちはどうすればいいですか?
1.コードが存在する環境のスタイルを維持します.既存のコードに新しいコードを追加するときは、まず既存のコードのスタイルを熟知しなければならない.例えば、インデント、スペースの使用、それから自分のコードを追加して、新しいコードのスタイルが突き出ないようにして、読者に迷惑をかけないようにしなければならない.
2.コード作成仕様の意味は、他の人(または自分)がコードを読むときに、このコードがどのように書かれているのかではなく、コードの内容が何なのかに集中させることです.チームワークには特にこれらが必要です.
3.最も重要な点は、あるスタイルを一貫して堅持することです.
-eof-