python模塊名包名類名是什么?
模塊:
1、模塊就是非常簡(jiǎn)單的Python文件,單個(gè)Python文件就是一個(gè)模塊,兩個(gè)文件就是兩個(gè)模塊。
2、模塊讓你能夠有邏輯地組織你的 Python 代碼段。把相關(guān)的代碼分配到一個(gè)模塊里能讓你的代碼更好用,更易懂。模塊能定義函數(shù),類和變量,模塊里也能包含可執(zhí)行的代碼。
3、若你需要在某個(gè)py文件中使用其他文件中的函數(shù)或類,則需要導(dǎo)入對(duì)應(yīng)的模塊,就可重用這些函數(shù)和變量。
模塊的引入
import語(yǔ)句:import.模塊名
語(yǔ)法:
import module1,module2
例1:
import random
Fruit = random.choice(['apple', 'pear', 'banana'])
print(Fruit)
from…import語(yǔ)句:
語(yǔ)法:
from modname import name1[, name2[, ... nameN]]
例2:
from random import choice
Fruit = choice(['apple', 'pear', 'banana'])
print(Fruit)
包:
1、包其實(shí)可以理解為文件夾,這個(gè)文件夾下面放著很多模塊。(模塊其實(shí)就是你寫的那些.py文件)包其實(shí)的作用就是將代碼文件給整合在一個(gè)文件夾下面,方便調(diào)用和管理。
2、包是一個(gè)分層次的文件目錄結(jié)構(gòu),它定義了一個(gè)由模塊及子包,和子包下的子包等組成的Python的應(yīng)用環(huán)境。簡(jiǎn)單來(lái)說(shuō),包就是文件夾,但該文件夾下必須存在 __init__.py 文件, 該文件的內(nèi)容可以為空。__init__.py 用于標(biāo)識(shí)當(dāng)前文件夾是一個(gè)包。
3、包的命名和文件夾命名一樣,不過(guò)還是那句話,不要用中文。那Python如何識(shí)別普通的文件夾與包呢?包有一個(gè)標(biāo)志文件,叫做__init__.py,假如一個(gè)文件夾下面有這個(gè)模塊(文件),那么Python就會(huì)認(rèn)為這個(gè)文件夾是一個(gè)包。
4、在調(diào)用包中的模塊后,你會(huì)發(fā)現(xiàn)在包的文件夾下生成了一個(gè)文件夾__pycache__,不需要理會(huì)它,是用于加快Python執(zhí)行速度用的。
搜索路徑:
python模塊的導(dǎo)入需要一個(gè)路徑搜索的過(guò)程。當(dāng)你導(dǎo)入一個(gè)模塊,Python解析器對(duì)模塊位置的搜索順序是:
1、當(dāng)前目錄
2、如果不在當(dāng)前目錄,Python 則搜索在shell變量PYTHONPATH下的每個(gè)目錄。
3、如果都找不到,Python會(huì)察看默認(rèn)路徑。UNIX下,默認(rèn)路徑一般為/usr/local/lib/python/。
模塊搜索路徑存儲(chǔ)在 system 模塊的 sys.path 變量中。變量里包含當(dāng)前目錄,PYTHONPATH和由安裝過(guò)程決定的默認(rèn)目錄。
例3:查看python的搜索路徑
import sys
print(sys.path)
"""
['F:\\Pycharm_project\\Py_Demo\\demo', 'F:\\Pycharm_project\\Py_Demo', (自定義路徑)
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35\\lib',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35',
'F:\\Pycharm_project\\Py_Demo\\venv', 'F:\\Pycharm_project\\Py_Demo\\venv\\lib\\site-packages',
'F:\\Pycharm_project\\Py_Demo\\venv\\lib\\site-packages\\pip-10.0.1-py3.5.egg',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages',
若導(dǎo)入的模塊沒(méi)有在這些搜索路徑下就會(huì)報(bào)錯(cuò)
"""
導(dǎo)入包中的函數(shù)
from 包名.模塊名 import 函數(shù)名(若包名沒(méi)有在默認(rèn)搜索路徑下,則還需要加上其路徑)
from selenium.webdriver.common import utils
模塊A:
#包名稱為Module下名稱為Class_Add 的模塊下的類A
class A:
def __init__(self,xx,yy):
self.x=xx
self.y=yy
def add(self):
print("x和y的和為:%d"%(self.x+self.y))
文件B:
from Module.Class_Add import A
#不重寫父類的__init__方法
a=A(2,3)
a.add()
總結(jié):
容器:例如列表、元組、字符串、字典等,這些是對(duì)數(shù)據(jù)的封裝
函數(shù):是對(duì)語(yǔ)句的封裝
類:是對(duì)方法和屬性的封裝,也就是對(duì)函數(shù)和數(shù)據(jù)的封裝
模塊:模塊就是程序,就是平常寫的任意代碼,保存的每一個(gè).py結(jié)尾的文件都是一個(gè)獨(dú)立的模塊(模塊的名字就是py文件的名字)
包:方便管理多個(gè)模塊