CH.18 模組: 大藍圖
網路上 Python Standard library 真是多的誇張呀~ 看起來還是要花一點時間瀏覽一下基本的東西,然後剩下的只能邊用邊查了! 這讓我覺得 Python 真是好物,library 很齊全而且都有統一整理起來。
- 1. Introduction
- 2. Built-in Functions
- 3. Non-essential Built-in Functions
- 4. Built-in Constants
- 5. Built-in Types
- 6. Built-in Exceptions
- 7. String Services
- 8. Data Types
- 9. Numeric and Mathematical Modules
- 10. File and Directory Access
- 11. Data Persistence
- 12. Data Compression and Archiving
- 13. File Formats
- 14. Cryptographic Services
- 15. Generic Operating System Services
- 16. Optional Operating System Services
- 17. Interprocess Communication and Networking
- 18. Internet Data Handling
- 19. Structured Markup Processing Tools
- 20. Internet Protocols and Support
- 21. Multimedia Services
- 22. Internationalization
- 23. Program Frameworks
- 24. Graphical User Interfaces with Tk
- 25. Development Tools
- 26. Debugging and Profiling
- 27. Python Runtime Services
- 28. Custom Python Interpreters
- 29. Restricted Execution
- 30. Importing Modules
- 31. Python Language Services
- 32. Python compiler package
- 33. Miscellaneous Services
- 34. MS Windows Specific Services
- 35. Unix Specific Services
- 36. Mac OS X specific services
- 37. MacPython OSA Modules
- 38. SGI IRIX Specific Services
- 39. SunOS Specific Services
- 40. Undocumented Modules
CH.19 模組撰碼基礎
Programming Python
Free online Python Programming Tutorial
使用模組幾個注意的點
- 匯入只會發生一次, 這也順便解決部份 recursive import 的問題, 而 reload 可強制重新 import
- 沒有必要就少用 from,會模糊掉模組空間
- 模組程式碼絕無法看見其他模組內的名稱,除非刻意予以匯入,P.402 的例子是在說明這點,如果我把 modb 加一行,會發現 modb 內的 X 值改變了,原因是我們強迫在 modb 內複製一份 moda 的 X,但同時要強調的是這只是複製品,所以 moda.X 最終結果會是 99 ,而本地的 X 絕對不會受到影響
X = 11 import moda from moda import X # 強迫把 X import 進來且複製一份 moda.f() print X, moda.X
>>> loading moda... loading moda finish 88 99
CH.20 模組套件
套件的匯入是利用指定目錄路徑,這一點很像 Java 的設計,大家可以同時寫自己的 utility.py 而不會彼此衝突到
CH.21 高等模組議題
__name__ 預設是 '__main__',但如果檔案是被匯入的,則會被改成其模組名稱,用途之一是把自我測試呼叫包放在檔案內,被人匯入時又不會被執行,另一個可能會用到的是 __file__
if __name__ == '__main__': test() # test code
import as 延伸功能,這個有點像是 alias 功能
比較這兩種寫法,前者在使用 function 時必須把全部的名字寫出來,後者則不需要
import sound.effects.echo sound.effects.echo.echofilter(...) from sound.effects import echo echo.echofilter(...)
沒有留言:
張貼留言