Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- C:\Users\xxxxx\Desktop\imp>py -2
- Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
- Type "help", "copyright", "credits" or "license" for more information.
- >>> from a import B
- >>> B().show()
- B1
- # ここでa.pyを変更
- >>> reload(a)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- NameError: name 'a' is not defined
- # モジュールが名前空間にないので当然リロードできません
- # じゃあモジュールを取ってきましょう
- >>> import importlib
- >>> a = importlib.import_module('a')
- >>> a.B().show()
- B1
- # 取れました
- # ここではキャッシュされたモジュールを取得したので
- # リロードされていません
- >>> reload(a)
- <module 'a' from 'a.py'>
- >>> a.B().show()
- B2
- # リロードできました
- # では、最初にimportしたBはどうなったでしょうか?
- >>> a.B == B
- False
- >>>
- # はい
- # リロードしてもBには伝播しません
- # 既に作成されたインスタンスにも伝播しません
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement