Kosei Kitahara avatar Kosei Kitahara committed 5bd5905

Update List Comprehensions

Comments (0)

Files changed (1)

     とはいえ、不正確な警告はほとんどありません。
 
 利点:
-    タイプミス、未初期化変数の利用などの単純ミスを発見することができます。
+    タイプミス、未初期化変数の利用などの単純ミスを発見できます。
 
 欠点:
     `pychecker` は完璧ではありません。利用するために、a) コードを書き b) 警告の無効化 c) 改修する もしくは d) 無視する 等が必要になることがあります。
 
     この手法により、警告の無効化や有効化が簡単に行えるという利点があります。
 
-    pychecker のすべての警告は、 `pychecker --help` で取得することができます。
+    pychecker のすべての警告は、 `pychecker --help` で取得できます。
 
     未使用変数に関する警告を無効にしたい場合は、
     未使用変数の識別子として '`_`' を利用するか、
     変数名のプレフィックスに '`unused_`' を指定します。
-    変数名を変更することができない場合は、
+    変数名を変更できない場合は、
     関数の先頭に記載します。
     例) ::
 
     例外は、コードブロックの正常処理から抜け、エラーや異常を処理するための手段です。
 
 利点:
-    正常処理コードの制御フローと、エラー処理用のコードを明確にすることができます。。
-    また、特定の異常が発生した際に、複数フレームの処理を飛ばすように制御することができます。
-    例えば、すべて実行した後にエラーコードを返すのではなく、ネストした関数からワンステップで戻すことができます。
+    正常処理コードの制御フローと、エラー処理用のコードを明確化できます。
+    また、特定の異常が発生した際に、複数フレームの処理を飛ばすように制御できます。
+    例えば、すべて実行した後にエラーコードを返すのではなく、ネストした関数からワンステップで戻せます。
 
 欠点:
     処理のコントロールが複雑になるので注意する必要があります。
 グローバル変数
 ``````````````
 
-グローバル変数は使わないようにする。
+グローバル変数は避ける。
 
 定義:
     変数はモジュールレベルで宣言します。
 
 欠点:
     モジュールレベルの変数は、モジュールをインポートした際に割り当てられるので、
-    インポートの際にモジュールのふるまいを変更しなければならない可能性があります。
+    インポートの際にモジュールの動作が変わってしまう可能性があります。
 
 結論:
     グローバル変数でなく、クラス変数を利用します。ただし、以下の場合を除きます:
 
     * スクリプトのデフォルトオプション
-    * モジュールレベル定数。例えば `PI = 3.14159` などです。定数はすべて大文字とアンダーバーからなる名前にします。詳細は :ref:`ネーミング` を参照のこと。
+    * モジュールレベル定数。例えば `PI = 3.14159` などです。
+      定数はすべて大文字とアンダーバーからなる名前にします。詳細は :ref:`ネーミング` を参照のこと。
     * 関数によって必要、もしくは返される値をグローバルにキャッシュする場合などには便利です。
-    * もし必要な場合、グローバルはモジュールの内部で作成し、パブリックモジュールレベルの関数によりアクセスされる必要があります; 詳細は :ref:`ネーミング` を参照のこと。
+    * もし必要な場合、グローバルはモジュールの内部で作成し、
+      パブリックモジュールレベルの関数によりアクセスされる必要があります;
+      詳細は :ref:`ネーミング` を参照のこと。
 
 .. _ネスト_ローカル_インナー_クラスと関数:
 
 ネスト/ローカル/インナー クラスと関数
 `````````````````````````````````````
 
-ネスト/ローカル/インナー クラス関数は有効です。
+ネスト/ローカル/インナー クラス、及び関数は有効です。
 
 定義:
-    クラス内部には、メソッド、関数、クラスを定義できます。
-    関数内部には、メソッド、関数を定義できます。
+    クラス内部に、メソッド、関数、クラスを定義できます。
+    関数内部に、メソッド、関数を定義できます。
     ネストされた関数は、再内スコープ内に定義された変数に読取専用でアクセスします。
 
 利点:
     特定のスコープ内に限定して利用するユーティリティークラスや関数を定義できます。
-    まさしく `抽象データ型`_ です。
+    `抽象データ型`_ です。
 
 欠点:
     ネスト、ローカルクラスのインスタンスはシリアライズ (pickle) できません。
 リストの内包
 ````````````
 
-簡単なケースの場合のみ利用する。
+シンプルなケースの場合のみ利用する。
 
 定義:
     リスト内包表記とジェネレータ式は、
     配列やイテレータを作成する簡単で効率的な方法を提供します。
 
 利点:
-    簡単なリスト内包表記は、他の配列を作成処理よりも分かりやすく簡単です。
+    シンプルなリスト内包表記は、他の配列を作成する手法よりも分かりやすく簡単です。
     ジェネレータ式は完全な配列を作成しない (遅延評価) ため、とても効率的です。
 
 欠点:
-    複雑なリストないほう表記やジェネレータ式は可読性が低くなります。
+    複雑なリスト内包表記やジェネレータ式は可読性が低くなります。
 
 結論:
-    簡単なケースの場合のみ利用するようにしましょう。
+    シンプルなケースの場合のみ利用するようにしましょう。
     以下の各部はワンライナーを適用します: マッピング式、 `for` 式、フィルター式。
     複数の `for` 式、フィルター式は許可されません。
-    複雑になりそうな場合は、ループ式を代用してください::
+    複雑になりそうな場合は、ループ式を代用してください::
 
         # No:
         result = [(x, y) for x in range(10) for y in range(5) if x * y > 10]
 
 利点:
     標準のイテレータや式は簡単で効率的です。
-    余計なメソッドを呼び出すことなく、直接その式を利用することができます。
+    余計なメソッドを呼び出すことなく、直接その式を利用できます。
     標準の操作を利用する関数が一般的です。
     その式をサポートするどんな型でも利用が可能となります。
 
 たいていの場合に利用する
 
 定義:
-    関数の引数配列の最後に、例えば `def foo(a, b=0):` のような変数の値を指定することができます。
+    関数の引数配列の最後に、例えば `def foo(a, b=0):` のような変数の値を指定できます。
     もし 1 つの引数で `foo` が呼びだされた場合、 `b` は `0` となります。
     もし 2 つの引数で呼び出された場合、 `b` は 2 つめの引数の値となります。
 
     コードより下にプロパティーとして利用することを通知しなければなりません
     (読取専用のプロパティーを作成するための `@property` は除く - 下部参照)。
     `object` から継承する必要があります。
-    演算子オーバーロードのような副次作用を回避することができます。
+    演算子オーバーロードのような副次作用を回避できます。
     サブクラスで分かりにくい場合があります。
 
 結論:
 
     スレッド間でデータを交換するために推奨されている方法は、
     `Queue` モジュールの `Queue` データ型の利用です。
-    他には、 `threading` モジュールとそのプリミティブロック (primitive lock) を利用することができます。
+    他には、 `threading` モジュールとそのプリミティブロック (primitive lock) を利用できます。
     よりローレベルなロックの代わりに `threading.Condition` を使えるように、
     一般的な `条件変数`_ (condition variable) の使用方法を学んでください。
 
     など多くの素敵 (変態的) な機能があります。
 
 利点:
-    これは言語の強力な機能です。これはコードをさらに軽量にすることができます。
+    これは言語の強力な機能です。これはコードをさらに軽量にできます。
 
 欠点:
     このような機能を必要としない場合においても、これら素敵な機能は非常に魅力的でしょう。
 ````````````
 
 アクセサ関数が必要でない場合は、関数呼び出しにかかる Python の余分なコストを抑えるためにアクセサ関数の代わりに一般の変数を利用します。
-関数を追加した場合は、構文を一貫させるため `property` を利用することができます。
+関数を追加した場合は、構文を一貫させるため `property` を利用できます。
 
 他方で、アクセスがより複雑な場合や変数へのアクセスコストが重要な場合は、
 `get_foo()` や `set_foo()` のような関数を利用 (ネーミングガイドラインを参照) し呼び出します。
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.