初覽Python模組文件
什麼是模組?
#每一個.py檔案都是一個模組,其他檔案可以透過導入一個模組讀取這個模組的內容,相當於C中的include…一個大型程式往往呈現出多模組的形式。其中一個模組檔案被設計為主檔案(or頂層檔案)。
模組的導入:
這裡我們做一個最簡單的example,更為詳細的後面講。這裡把剛才寫的script1放在我們安裝Python的位置:
#然後開始-運行-python:
#10.import,from 和reload
- 模組只可以導入一次
導入是一個開銷很大的操作,以至於每個程式運行只可以導入一次。想再執行除非呼叫內建reload函數:
#import和reload不同的是,import不需要括號,是一個語句,而reload是一個函數,其回傳值是一個python模組物件。
- 模組扮演了工具庫的角色:模組往往是變數名稱的封裝,可被視為命名空間;在一個套件中的變數名稱就是屬性,或者說,屬性就是綁定在特定物件上的變數名。一個模組通常可以有兩個兩個Python語句讀入:import 和from,以及reload函數的使用
- import語句將模組作為一個整體引用,相當於引入一個類別的object。看下面的效果就明白了。 myfile作為一個模組被引用,然後script1就可以使用myfile的屬性了。
- 另一種參考方法:
- 模組的知識我們將在後面的章節具體的講,這裡再給出一個import的例子。有朋友提出疑問,為什麼import不是像C 中#include一樣後續可以呼叫這個這個模組的方法和屬性,而是直接執行了呢?這裡給一個解釋,並不是不可以呼叫這個模組的方法,而是上面的例子給的比較簡單,沒有涉及類別的封裝,只有幾個執行語句。下面在給出的這個例子是一個簡單的模組例子。此例中,Worker.py定義了Worker類,外部透過import Worker導入該模組,進行相關操作。
import&from總結版:
- ## dir(myfile)是獲得myfile中的所有attribute,其中,前面帶下劃線的是Python預先定義的內建變數名稱
- 模組是Python程式最大的程式結構
- 每個模組檔案都是一個獨立完整的變數包裝,也就是一個命名空間
- 常用Python模組
adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework ctypes:用来调用动态链接库 DBUtils:数据库连接池 django:一个WEB framework docutils:用来写文档的 dpkt:数据包的解包和组包 MySQLdb:连接MySQL数据库的 py2exe:用来生成windows可执行文件 Pylons:我们领导推荐的web framework pysqlite2:SQLite的连接组件 pythonwin:Python的Windows扩展 setuptools:无奈,PEAK的一套python包管理机制 sqlalchemy:数据库连接池 SQLObject:数据库连接池 twisted:巨无霸的网络编程框架 wxPython-2.6:因为需要保持与linux相同的版本才没用最新的,GUI编程框架 pypcap:抓包的 python-dnet:控制网络安全的其他设备 pyevent:Python的事件支持 pydot:画图的,graphiz sendpkt:Python发包 simplejson:JSON的支持 DPKT:raw-scoket网络编程 Cx-oracle:连接oracle的好东东 Mechanize:爬虫连接网站常用 PIL:图像处理工具包 reportlab for PDF 文件。 PyQt4 for GUI界面 feedparser: rss解析 chardet:编码检测 scons: 项目构建工具,写好了模板用起来还是很方便的 scapy: 网络包构建分析框架,可编程的wireshark,有兴趣的google “Silver Needle in the Skype” pefile: windows pe文件解析器 winpdb: 自己的程序或者用别的库不太明白的时候就靠它了 pywmi: 省了好多折腾功夫 pylint: 培养良好的编码习惯 下面是准备用的,不做评论: pygccxml pyparsing pymacs idapython paimei pysvn pyLucene wikidpad 1.Python操作PDF文件 2.Python連接PostgreSQL引擎 3.Python的.NET2.0的曲線表 http://pybrary.net/ —————————————————– 1.Python Image Libary 2.Tkinter Libary http://www.pythonware.com/index.htm —————————————————– 1.Karrigell http://karrigell.sourceforge.net/ —————————————————– 1.The Standard Python Libary http://effbot.org/librarybook/ —————————————————– 1.Python操作PDF的Libary http://reportlab.org/ —————————————————– 1.Python cURL Libary http://pycurl.sourceforge.net/ —————————————————– 1.urlgrabber http://linux.duke.edu/projects/urlgrabber/ —————————————————– 1.MySQL-Python http://mysql-python.sourceforge.net/ —————————————————– 1.pyScripter 2.Python for Delphi http://mmm-experts.com/Products.aspx —————————————————– 1.Python Cookbook http://aspn.activestate.com/ASPN/Python/Cookbook/ —————————————————– 1.pygame http://www.pygame.org/news.html —————————————————— 1.pymedia http://www.pymedia.org —————————————————— 1.pydbf http://dbfpy.sourceforge.net/ —————————————————— 1.Pexpect http://pexpect.sourceforge.net/ —————————————————— 1.dabo desktop application frameworks http://dabodev.com/ —————————————————— 1.pySerial http://pyserial.sourceforge.net/ http://wiki.woodpecker.org.cn/moin/PySerial —————————————————— 1.python’s doc http://wiki.woodpecker.org.cn/moin/PythonZhDoc —————————————————— 1.The Visual Module of VPython(3D) http://vpython.org/index.html —————————————————— 1.PyLucene http://pylucene.osafoundation.org/ —————————————————— 1.DBUils http://www.webwareforpython.org/DBUtils —————————————————— 1.http://happyiww.popo.blog.163.com/blog/ a good people’s blog —————————————————— 1.AppleScript,OSAComponents,HtmlCalendar http://freespace.virgin.net/hamish.sanderson/index.html —————————————————— 1.Pypcap http://code.google.com/p/pypcap/ http://monkey.org/~dugsong/dpkt/ http://www.winpcap.org/install/default.htm python-memcached client module for memcached Kodos,python的正则表达式调试工具, PLY (Python Lex-Yacc) http://www.dabeaz.com/ply/ 正在用它写汇编器. wxPython - GUI Framework omniORBpy - CORBA Library ZODB3 - an OODB implement ReportLab - PDF generating solution numpy+scipy+matplotlib hachoir 各种多媒体元数据解析 python-orge 演示用 数据库的: sqlalchemy sqlobject MySQL-python (easy_install的时候就是这个名字) routes beaker 两个模板引擎: genshi mako paster 另外还有知道的 PyCrypto 加密的 paramiko 这个可以帮你写sftp,比twisted里面的那个好用一些 twisted 写服务器玩的 PyOpenGL PyGame Psyco 传说可以加速你的python程序 PIL (Python Image Library) 处理图片 PyObjC 这个是苹果上用的,写Cocoa程序 Python desktop client GUI application: wxPython PyOpenGL PyXML ZSI davlib.py ChartDirector 一个支持多种语言的图表库,无论是效果还是效率,都比jfreechart高。###