2013年3月14日木曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のV部(モジュール)の20章(インポート、リロード)3.を解いてみる。

その他参考書籍

3.

まず、python3.xではreload関数はビルトイン関数ではなく、impモジュールに定義されている。

通常importは対話型セッション中等では一回だけ(セッションが途切れる事無くモジュールを変更したあと再度インポートしても反映されない)けど、impモジュールのreload関数を使えば再度インポートされて変更が反映される。以下その様子が分かる実行結果。

入出力結果(Terminal)

$ cat sample.py
#!/usr/bin/env python3.3
#-*- coding: utf

def f():
    print("Hello, Python!")
$ python
Python 3.3.0 (default, Sep 29 2012, 08:16:08) 
[GCC 4.2.1 Compatible Apple Clang 3.1 (tags/Apple/clang-318.0.58)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sample
>>> sample.f()
Hello, Python!
>>> 
[1]+  Stopped                 python
$ vi sample.py
$ cat sample.py
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

def f():
    print("Hello, World!")
$ fg
python
import sample
import sample
>>> sample.f()
Hello, Python!
>>> import imp
>>> imp.reload(sample)
<module 'sample' from './sample.py'>
>>> sample.f()
Hello, World!
>>> quit()
$

0 コメント:

コメントを投稿