16_Python模塊的導(dǎo)入_全棧開發(fā)學(xué)習(xí)筆記

1. 模塊導(dǎo)入的順序

內(nèi)置模塊
擴(kuò)展的 django
自定義的


2. import

先創(chuàng)建demo.py文件:

print("in demo.py")

money = 100

def read():
    print("in read1")

再到另一py文件寫上:

import demo

demo.read()

print(demo.money)

執(zhí)行結(jié)果:

in demo.py
in read1
100

3. 模塊導(dǎo)入的流程

先從sys.modules里查看是否已經(jīng)被導(dǎo)入
如果沒有被導(dǎo)入乍赫,就依據(jù)sys.path路徑取尋找模塊
找到了就導(dǎo)入
創(chuàng)建這個(gè)模塊的命名空間
執(zhí)行文件,把文件中的名字都放到命名空間里

范例:

import demo
import sys

print(sys.modules.keys())
print(sys.path)

執(zhí)行結(jié)果:

in demo.py
dict_keys(['locale', 'heapq', 'errno', 'types', '_weakref', 'io', 'demo', 'reprlib', 'functools', 'encodings', '_thread', '_locale', 'operator', 'sre_constants', 'copyreg', '_heapq', 'winreg', '_imp', '_functools', '_operator', '_bootlocale', 'sys', 'encodings.mbcs', '__main__', 'ntpath', 'encodings.latin_1', 'weakref', '_io', 'sre_compile', 'signal', '_codecs', 'encodings.gbk', 'zipimport', 'site', 'abc', 'encodings.utf_8', 'sre_parse', 'nt', '_codecs_cn', 'keyword', '_warnings', '_collections', 'genericpath', 're', '_collections_abc', 'os', 'encodings.aliases', 'itertools', 'marshal', 'os.path', '_weakrefset', 'codecs', 'collections', '_stat', '_multibytecodec', 'stat', '_frozen_importlib', '_sre', 'builtins'])
['D:\\temp_study\\python01', 'D:\\temp_study\\python01', 'C:\\WINDOWS\\SYSTEM32\\python34.zip', 'D:\\temp_study\\python01\\venv\\DLLs', 'D:\\temp_study\\python01\\venv\\lib', 'D:\\temp_study\\python01\\venv\\Scripts', 'D:\\Python34\\Lib', 'D:\\Python34\\DLLs', 'D:\\temp_study\\python01\\venv', 'D:\\temp_study\\python01\\venv\\lib\\site-packages']

4. 給模塊起別名

import time as t

print(t.time())

執(zhí)行結(jié)果:

1548923779.046172

起別名的用法:

# oracle
# mysql
# if 數(shù)據(jù)庫(kù) == ‘oracle’:
#     import oracle as db
# elif 數(shù)據(jù)庫(kù) == ‘mysql’:
#     import mysql as db
# # 連接數(shù)據(jù)庫(kù)   db.connect
# # 登錄認(rèn)證
# # 增刪改查
# # 關(guān)閉數(shù)據(jù)庫(kù)

5. from ... import ...

demo.py文件

print("in demo.py")

money = 100

def read():
    print("in read1",money)

一次范例:

from demo import read
read()

執(zhí)行結(jié)果:

in demo.py
in read1 100

二次范例:

from demo import read
def read():
    print('my read')
read()

執(zhí)行結(jié)果:

in demo.py
my read

6. _name_

范例:
正式代碼不顯示模塊中的內(nèi)容
demo.py

def login():
    print("正在執(zhí)行登錄程序")

if __name__ == "__main__":
    ret = login()
    print(ret)

執(zhí)行結(jié)果:

正在執(zhí)行登錄程序
None

test.py

import demo

執(zhí)行結(jié)果:

無內(nèi)容

7. 小結(jié)

所有的模塊導(dǎo)入都應(yīng)該盡量往上寫
    內(nèi)置模塊
    擴(kuò)展模塊
    自定義模塊
模塊不會(huì)重復(fù)被導(dǎo)入 : sys.moudles
從哪兒導(dǎo)入模塊 : sys.path
import
import 模塊名
    模塊名.變量名 和本文件中的變量名完全不沖突
import 模塊名 as 重命名的模塊名 : 提高代碼的兼容性
import 模塊1,模塊2

from import
from 模塊名 import 變量名
    直接使用 變量名 就可以完成操作
    如果本文件中有相同的變量名會(huì)發(fā)生沖突
from 模塊名 import 變量名字 as 重命名變量名
from 模塊名 import 變量名1,變量名2
from 模塊名 import *
    將模塊中的所有變量名都放到內(nèi)存中
    如果本文件中有相同的變量名會(huì)發(fā)生沖突
from 模塊名 import * 和 __all__ 是一對(duì)
    沒有這個(gè)變量,就會(huì)導(dǎo)入所有的名字
    如果有all 只導(dǎo)入all列表中的名字
__name__
在模塊中 有一個(gè)變量__name__棺牧,
當(dāng)我們直接執(zhí)行這個(gè)模塊的時(shí)候,__name__ == '__main__'
當(dāng)我們執(zhí)行其他模塊,在其他模塊中引用這個(gè)模塊的時(shí)候截歉,這個(gè)模塊中的__name__ == '模塊的名字'
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市烟零,隨后出現(xiàn)的幾起案子瘪松,更是在濱河造成了極大的恐慌咸作,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宵睦,死亡現(xiàn)場(chǎng)離奇詭異记罚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)壳嚎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門桐智,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烟馅,你說我怎么就攤上這事说庭。” “怎么了郑趁?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵刊驴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我穿撮,道長(zhǎng)缺脉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任悦穿,我火速辦了婚禮攻礼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘栗柒。我一直安慰自己礁扮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布瞬沦。 她就那樣靜靜地躺著太伊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逛钻。 梳的紋絲不亂的頭發(fā)上僚焦,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音曙痘,去河邊找鬼芳悲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛边坤,可吹牛的內(nèi)容都是我干的名扛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼茧痒,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼肮韧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤弄企,失蹤者是張志新(化名)和其女友劉穎超燃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桩蓉,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淋纲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了院究。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洽瞬。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖业汰,靈堂內(nèi)的尸體忽然破棺而出伙窃,到底是詐尸還是另有隱情,我是刑警寧澤样漆,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布为障,位于F島的核電站,受9級(jí)特大地震影響放祟,放射性物質(zhì)發(fā)生泄漏鳍怨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一跪妥、第九天 我趴在偏房一處隱蔽的房頂上張望鞋喇。 院中可真熱鬧,春花似錦眉撵、人聲如沸侦香。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)罐韩。三九已至,卻和暖如春污朽,著一層夾襖步出監(jiān)牢的瞬間散吵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工蟆肆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矾睦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓颓芭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親柬赐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亡问,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 模塊和包 一 模塊 1 什么是模塊州藕? 常見的場(chǎng)景:一個(gè)模塊就是一個(gè)包含了python定義和聲明的文件束世,文件名就是...
    go以恒閱讀 2,263評(píng)論 0 4
  • 1. 認(rèn)識(shí)模塊 1.1 什么是模塊 一個(gè)模塊就是一個(gè)包含了python定義和聲明的文件,文件名就是模塊名字加上.p...
    hswangxun閱讀 612評(píng)論 0 1
  • 一床玻、模塊 1毁涉、模塊和導(dǎo)入 當(dāng)程序代碼量變得相當(dāng)大、邏輯結(jié)構(gòu)變得非常復(fù)雜的時(shí)候锈死,我們最好把代碼按照邏輯和功能劃分成一...
    常大鵬閱讀 2,976評(píng)論 0 9
  • 模塊 一個(gè)模塊就是包含了python定義和聲明的文件贫堰,文件名就是模塊名字加上.py后綴,通過導(dǎo)入模塊來引入其他文件...
    斷尾壁虎V閱讀 1,595評(píng)論 0 1
  • 今年年初,我第一次嘗試玩手賬待牵,之前有一些簡(jiǎn)單的了解其屏,也看到別人做的精美的手賬,便有些心動(dòng)缨该,好巧的是正好看到冉冉老師...
    效艷一畝田閱讀 361評(píng)論 1 1