gae アプリ 開発メモ

Google App Engine アプリの開発メモ / 言語: python, javascript / ビギナー

モジュールのコードはいつ実行される?

正規表現のコードを書いていて、正規表現のコンパイルっていつすべき?と思ったのでエントリー。

テストコード


こんなモジュールを書いてみる。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# file: mylib

print 'global.'

class A(object):
    print 'in class A.'

    def __init__(self):
        print 'in class A constructor.'

class B(object):
    print 'in class B.'

    def __init__(self):
        print 'in class B constructor.'


で、モジュールをimportするコード。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print 'before import.'

from mylib import A

print 'after import.'

if __name__ == '__main__':
    a = A()

結果

before import.
global.
in class A.
in class B.
after import.
in class A constructor.

グローバルに書いたものが実行されるのは納得。
A しか import しなくても B のクラスの中も import 時に実行されるのね。

しょっちゅうオブジェクトを作って壊してって使い方なら、class の中でいいかも。