[Pythonjp-checkins] [python-doc-ja] push by cocoa****@gmail***** - tutorial/modules.rst 差分翻訳 on 2011-02-17 03:36 GMT

Back to archive index

pytho****@googl***** pytho****@googl*****
2011年 2月 17日 (木) 12:37:20 JST


Revision: 556f28b1a5
Author: cocoa****@gmail*****
Date: Wed Feb 16 19:34:45 2011
Log: tutorial/modules.rst 差分翻訳
http://code.google.com/p/python-doc-ja/source/detail?r=556f28b1a5

Modified:
  /tutorial/modules.rst

=======================================
--- /tutorial/modules.rst	Sat Nov 27 11:01:10 2010
+++ /tutorial/modules.rst	Wed Feb 16 19:34:45 2011
@@ -114,6 +114,8 @@

  上の操作は、アンダースコア (``_``) で開始する名前以外の全ての名前を import  
します。

+一般的には、モジュールやパッケージから ``*`` を import するというやり方には 
賛同できません。というのは、この操作を行うとしばしば可読性に
+乏しいコードになるからです。しかし、対話セッションでキータイプの量を減らす 
ために使うのは構わないでしょう。

  .. note::

@@ -472,15 +474,10 @@

  それでは、ユーザが ``from sound.effects import *`` と書いたら、どうなるので 
しょうか?
  理想的には、何らかの方法でファイルシステムが調べられ、そのパッケージにどん 
なサブモジュールがあるかを調べ上げ、全てを import
-する、という処理を望むことでしょう。残念ながら、この操作は Windows のプラッ 
トフォームではうまく動作しません。
-これらのプラットフォームでは、ファイルシステムはファイル名の大小文字の区別 
について正しい情報をもっているとは限らないからです!
-こうしたプラットフォームでは、ファイル :file:`ECHO.PY` をモジュー 
ル :mod:`echo` として import
-すべきか、 :mod:`Echo` とすべきかが分かる確かな方法がないからです (例え 
ば、 Windows 95 は
-すべてのファイル名の最初の文字を大文字にして表示するという困った慣習があり 
ます)。また、DOS の 8+3 のファイル名制限のせいで、
-長いモジュール名に関して別の奇妙な問題が追加されています。
+する、という処理を望むことでしょう。これには長い時間がかかってしまうことも 
ありますし、あるサブモジュールを import することで、そのモジュールが明示的 
に import されたときのみ発生して欲しい副作用が起きてしまうかもしれません。


-唯一の解決策は、パッケージの作者にパッケージの索引を明示的に提供させるとい 
うものです。 import 文は次の規約を使います: パッケージの
+唯一の解決策は、パッケージの作者にパッケージの索引を明示的に提供させるとい 
うものです。 :keyword:`import` 文は次の規約を使います: パッケージの
  :file:`__init__.py` コードに ``__all__`` という名前のリストが定義されていれ 
ば、 ``from package import
  *`` が現れたときに import するリストとして使います。新たなパッケージがリ 
リースされるときに
  リストを最新の状態に更新するのはパッケージの作者の責任となります。自分のパ 
ッケージから \* を import するという使い方に同意できなければ、
@@ -501,7 +498,7 @@
  (場合によっては初期化コード :file:`__init__.py` を実行して)  パッケー 
ジ :mod:`sound.effects` が import
  されたということを確認し、そのパッケージで定義されている名前を全て import  
するだけです。 import
  される名前には、 :file:`__init__.py` で定義された名前  (と、明示的にロード 
されたサブモジュール) が含まれます。
-パッケージのサブモジュールで、以前の import 文で明示的にロードされたものも 
含みます。以下のコードを考えてください:
+パッケージのサブモジュールで、以前の :keyword:`import` 文で明示的にロードさ 
れたものも含みます。以下のコードを考えてください:


  ::
@@ -510,14 +507,15 @@
     import sound.effects.surround
     from sound.effects import *

-上の例では、echo と surround モジュールが現在の名前空間に import されます。 
これらのモジュールは ``from...import`` 文が
+上の例では、 :mod:`echo` と :mod:`surround` モジュールが現在の名前空間に  
import されます。これらのモジュールは ``from...import`` 文が
  実行された際に :mod:`sound.effects` 内で定義されているからです (この機構は  
``__all__`` が定義されているときにも働きます)。

-
-一般的には、モジュールやパッケージから ``*`` を import するというやり方には 
賛同できません。というのは、この操作を行うとしばしば可読性に
-乏しいコードになるからです。しかし、対話セッションでキータイプの量を減らす 
ために使うのは構わないでしょう。それに、特定のモジュールでは、
-特定のパターンに従った名前のみを公開 (export) するように設計されています。
-
+.. memo
+   原文での L.488--L.490 -> L.l06--L.108 の移動に従い, 訳文も移動.
+
+特定のモジュールでは ``import *`` を使ったときに、
+特定のパターンに従った名前のみを公開 (export) するように設計されてはいます 
が、
+それでもやはり製品のコードでは良いことではないと考えます。

  ``from package import specific_submodule`` を使っても何も問題は
  ないことに留意してください!実際この表記法は、import を行うモジュールが他の 
パッケージかと同じ名前を持つサブモジュールを使わなければ
@@ -574,5 +572,5 @@

  .. rubric:: Footnotes

-.. [#] 実際には、関数定義も '実行' される '文' です; モジュールを実行する 
と、関数名はモジュールのグローバルなシンボルテーブルに入力されます。
-
+.. [#] 実際には、関数定義も '実行' される '文' です; モジュールレベルの関数 
を実行すると、関数名はモジュールのグローバルなシンボルテーブルに入ります。
+




Pythonjp-checkins メーリングリストの案内
Back to archive index