Advertisement
Guest User

Untitled

a guest
Feb 21st, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. C:\Users\xxxxx\Desktop\imp>py -2
  2. Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
  3. Type "help", "copyright", "credits" or "license" for more information.
  4.  
  5. >>> from a import B
  6. >>> B().show()
  7. B1
  8.  
  9. # ここでa.pyを変更
  10.  
  11. >>> reload(a)
  12. Traceback (most recent call last):
  13. File "<stdin>", line 1, in <module>
  14. NameError: name 'a' is not defined
  15.  
  16. # モジュールが名前空間にないので当然リロードできません
  17. # じゃあモジュールを取ってきましょう
  18.  
  19. >>> import importlib
  20. >>> a = importlib.import_module('a')
  21. >>> a.B().show()
  22. B1
  23.  
  24. # 取れました
  25. # ここではキャッシュされたモジュールを取得したので
  26. # リロードされていません
  27.  
  28. >>> reload(a)
  29. <module 'a' from 'a.py'>
  30. >>> a.B().show()
  31. B2
  32.  
  33. # リロードできました
  34. # では、最初にimportしたBはどうなったでしょうか?
  35.  
  36. >>> a.B == B
  37. False
  38. >>>
  39.  
  40. # はい
  41. # リロードしてもBには伝播しません
  42. # 既に作成されたインスタンスにも伝播しません
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement