導(dǎo)入模塊技巧
還有一些在不同情形下很有用的其他形式的?import?語(yǔ)句。
要從模塊中導(dǎo)入單個(gè)函數(shù)或類:
from module_name import object_name
要從模塊中導(dǎo)入多個(gè)單個(gè)對(duì)象:
from module_name import first_object, second_object
要重命名模塊:
import module_name as new_name
要從模塊中導(dǎo)入對(duì)象并重命名:
from module_name import object_name as new_name
要從模塊中單個(gè)地導(dǎo)入所有對(duì)象(請(qǐng)勿這么做):
from module_name import *
如果你真的想使用模塊中的所有對(duì)象训柴,請(qǐng)使用標(biāo)準(zhǔn)導(dǎo)入 module_name 語(yǔ)句并使用點(diǎn)記法訪問(wèn)每個(gè)對(duì)象衙传。
from module_name
第三方庫(kù)
pip 是在 Python 3 中包含的軟件包管理器腕铸,它是標(biāo)準(zhǔn) Python 軟件包管理器实辑,但并不是唯一的管理器不从。另一個(gè)熱門的管理器是 Anaconda浊洞,該管理器專門針對(duì)數(shù)據(jù)科學(xué)牵敷。可以使用 pip 安裝軟件包法希,在命令行中輸入“pip install”劣领,
使用?requirements.txt?文件
大型 Python 程序可能依賴于十幾個(gè)第三方軟件包。為了更輕松地分享這些程序铁材,程序員經(jīng)常會(huì)在叫做 requirements.txt 的文件中列出項(xiàng)目的依賴項(xiàng)尖淘。下面是一個(gè) requirements.txt 文件示例奕锌。
beautifulsoup4==4.5.1
bs4==0.0.1
pytz==2016.7
requests==2.11.1
該文件的每行包含軟件包名稱和版本號(hào)。版本號(hào)是可選項(xiàng)村生,但是通常都會(huì)包含惊暴。
實(shí)用的第三方軟件包
能夠安裝并導(dǎo)入第三方庫(kù)很有用,但是要成為優(yōu)秀的程序員趁桃,還需要知道有哪些庫(kù)可以使用辽话。大家通常通過(guò)在線推薦或同事介紹了解實(shí)用的新庫(kù)。如果你是一名 Python 編程新手卫病,可能沒(méi)有很多同事油啤,因此為了幫助你了解入門信息,下面是優(yōu)達(dá)學(xué)城工程師很喜歡使用的軟件包列表蟀苛。
IPython?- 更好的交互式 Python 解釋器
requests?- 提供易于使用的方法來(lái)發(fā)出網(wǎng)絡(luò)請(qǐng)求益咬。適用于訪問(wèn)網(wǎng)絡(luò) API。
Flask?- 一個(gè)小型框架帜平,用于構(gòu)建網(wǎng)絡(luò)應(yīng)用和 API幽告。
Django?- 一個(gè)功能更豐富的網(wǎng)絡(luò)應(yīng)用構(gòu)建框架。Django 尤其適合設(shè)計(jì)復(fù)雜裆甩、內(nèi)容豐富的網(wǎng)絡(luò)應(yīng)用冗锁。
Beautiful Soup?- 用于解析 HTML 并從中提取信息。適合網(wǎng)頁(yè)數(shù)據(jù)抽取嗤栓。
pytest?- 擴(kuò)展了 Python 的內(nèi)置斷言冻河,并且是最具單元性的模塊。
NumPy?- 用于使用 Python 進(jìn)行科學(xué)計(jì)算的最基本軟件包芋绸。它包含一個(gè)強(qiáng)大的 N 維數(shù)組對(duì)象和實(shí)用的線性代數(shù)功能等。
pandas?- 包含高性能担敌、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具的庫(kù)摔敛。尤其是,pandas 提供 dataframe全封!
matplotlib?- 二維繪制庫(kù)马昙,會(huì)生成達(dá)到發(fā)布標(biāo)準(zhǔn)的高品質(zhì)圖片,并且采用各種硬拷貝格式和交互式環(huán)境刹悴。
ggplot?- 另一種二維繪制庫(kù)行楞,基于 R's ggplot2 庫(kù)。
Pillow?- Python 圖片庫(kù)可以向你的 Python 解釋器添加圖片處理功能土匀。
pyglet?- 專門面向游戲開發(fā)的跨平臺(tái)應(yīng)用框架子房。
Pygame?- 用于編寫游戲的一系列 Python 模塊。
pytz?- Python 的世界時(shí)區(qū)定義。
在線資源的優(yōu)先級(jí)
雖然有很多關(guān)于編程的在線資源证杭,但是并非所有資源都是同等水平的田度。下面的資源列表按照大致的可靠性順序排序。
Python 教程?- 這部分官方文檔給出了 Python 的語(yǔ)法和標(biāo)準(zhǔn)庫(kù)解愤。它會(huì)舉例講解镇饺,并且采用的語(yǔ)言比主要文檔的要淺顯易懂。確保閱讀該文檔的 Python 3 版本送讲!
Python 語(yǔ)言和庫(kù)參考資料?- 語(yǔ)言參考資料和庫(kù)參考資料比教程更具技術(shù)性奸笤,但肯定是可靠的信息來(lái)源。當(dāng)你越來(lái)越熟悉 Python 時(shí)哼鬓,應(yīng)該更頻繁地使用這些資源监右。
第三方庫(kù)文檔?- 第三方庫(kù)會(huì)在自己的網(wǎng)站上發(fā)布文檔,通常發(fā)布于?https://readthedocs.org/异希。你可以根據(jù)文檔質(zhì)量判斷第三方庫(kù)的質(zhì)量健盒。如果開發(fā)者沒(méi)有時(shí)間編寫好的文檔,很可能也沒(méi)時(shí)間完善庫(kù)宠互。
非常專業(yè)的網(wǎng)站和博客?- 前面的資源都是主要資源味榛,他們是編寫相應(yīng)代碼的同一作者編寫的文檔椭坚。主要資源是最可靠的資源予跌。次要資源也是非常寶貴的資源。次要資源比較麻煩的是需要判斷資源的可信度善茎。Doug Hellmann?等作者和?Eli Bendersky?等開發(fā)者的網(wǎng)站很棒券册。不出名作者的博客可能很棒,也可能很糟糕垂涯。
StackOverflow?- 這個(gè)問(wèn)答網(wǎng)站有很多用戶訪問(wèn)烁焙,因此很有可能有人之前提過(guò)相關(guān)的問(wèn)題,并且有人回答了耕赘!但是骄蝇,答案是大家自愿提供的,質(zhì)量參差不齊操骡。在將解決方案應(yīng)用到你的程序中之前九火,始終先理解解決方案。如果答案只有一行册招,沒(méi)有解釋岔激,則值得懷疑。你可以在此網(wǎng)站上查找關(guān)于你的問(wèn)題的更多信息是掰,或發(fā)現(xiàn)替代性搜索字詞虑鼎。
Bug 跟蹤器?- 有時(shí)候,你可能會(huì)遇到非常罕見的問(wèn)題或者非常新的問(wèn)題,沒(méi)有人在 StackOverflow 上提過(guò)炫彩。例如匾七,你可能會(huì)在 GitHub 上的 bug 報(bào)告中找到關(guān)于你的錯(cuò)誤的信息。這些 bug 報(bào)告很有用媒楼,但是你可能需要自己開展一些工程方面的研究乐尊,才能解決問(wèn)題。
隨機(jī)網(wǎng)絡(luò)論壇?- 有時(shí)候划址,搜索結(jié)果可能會(huì)生成一些自 2004 年左右就不再活躍的論壇扔嵌。如果這些資源是唯一解決你的問(wèn)題的資源,那么你應(yīng)該重新思考下尋找解決方案的方式夺颤。