トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
Python
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ モジュール(module)


    頻繁に利用する関数、クラスなどの定義、文をファイルとしてまとめておける。
    これをモジュールという。
    モジュールはインポートすることで利用できる。

___

■ モジュールの作成

モジュールにしたい関数、クラスを定義する。 実行可能な文も記述できる。

    def f():
      print "test module"
___

■ インポート(import)

モジュールを import するには 4 つの方法がある。
     import module
     import module as nickname
     from module import name
     from module import *

test.py をインポートする。 この時点では モジュール名の test だけがシンボル表にはいる。
    import test
モジュール内のシンボルを参照するには モジュール.シンボル とする。
    test.f();

    # 頻繁に利用する場合は ローカル変数に代入する。
    f = test.f;
    f();
モジュール名ではなく、モジュール内の名前をローカルシンボル表にいれることもできる。
    from test import f
    f();

    # _ から始まる以外の名前をシンボル表にいれる。
    from test import *
    # os, sys をインポートする。 ( 複数のモジュールを同時に指定できる )
    import os, sys;

    # パッケージ内から特定のモジュールをインポートする。
    import Sound.Effects.echo;

    # ネームスペースを省略する。
    from Sound.Effects import echo;


    # 指定した package 以下のすべてのモジュールをロードする
    # パッケージ内の __init__.py の リスト __all__ のモジュールがすべてロードされる
    from Sound.Effects import *;
    
別名をつけることで、名前を短くできる。
    import os.path as p
    p.basename( "d:/py.txt" );
___

■ dir

モジュール内で定義されている名前を調べるには組み込み関数 dir() を使う。 ソート済みの文字列のリストが返る。 ヘルプ機能として使える。
    import sys, math
    print dir( sys )
    print dir( math )
引数なしでコールすると、現在定義されている名前のリストを返す。
    print dir();
組み込みの関数、変数は組み込みモジュール __builtins__ に定義されている。

___

■ 検索パス

次の順番で python が検索する。
     カレントパス
       $PYTHONPATH
検索パスは sys.path で確認ができる。
    import sys
    print sys.path
import をする前に sys.path の順番を変更することで import するモジュールを切り替えることができる。
    sys.path.insert( 0, "d:/python" )
    import foo
WARNING 自分で書いているスクリプト自身も最初の検索の対象になるため モジュールと同名のファイルにしないこと。
    # wx.py というファイルを用意した場合以下のimport文は自分自身をロードしてしまう。
    import wx;

    # チェックするには __file__ で見る。
    print wx.__file__

___

■ パッケージ(package)

module をパッケージしたもの。 ディレクトリ構造でパッケージされる。 パッケージをつくるには, 入れ物となるディレクトリをつくる。 検索パス以下に置く。 WARNING __init__.py というファイルは各パッケージごとに必須。 ないとパッケージ内のモジュールをインポートできない。
    $PYTHON_PATH
                /testpack/
                         __init__.py
                         foo.py
import する側はディレクトリをパッケージ名にしてインポートする。
    import testpack.foo

    # module 内の関数をコールする    
    testpack.foo.func()
__init__.py はパッケージの初期化時に評価される。 __all__ 属性にロードしたい対象のリストをいれておくと * で同時にロードできる。
    __all__ = [ "foo" ]
インポートする側は * を指定することで __all__ で指定したすべてのモジュールをロードできる。
    import * from testpack


NINJAIDX 8