您好,登錄后才能下訂單哦!
模塊
如何導入模塊?
為什么必須加上模塊名調用呢?
因為可能存在這樣一種情況:在多個模塊中含有相同名稱的函數,
如果只是通過函數名來調用,解釋器無法知道到底要調用哪個函數。
所以如果像上述這樣引入模塊的時候,調用函數必須加上模塊名。
如何導入模塊?
如果只需要用到模塊中的某個函數/變量/類,如何導入呢?
通過這種方式引入的時候,調用函數時只能給出函數名,不能給出模塊名,
但是當兩個模塊中含有相同名稱函數的時候,后面一次引入會覆蓋前一
次引入。
如果導入的模塊名/函數名/變量名過長,該如何操作呢?
import numpy as np
import os.path as pth
from random import randint as rint
如果把一個模塊的所有內容全都導入,如何操作呢?
這提供了一個簡單的方法來導入一個模塊中的所有項目。然而這種聲
明不該被過多地使用
模塊中的 all有什么作用?
如果一個文件中有all變量,那么也就意味著這個變量中的元素,不會被
from xxx import *時導入
#1). Python內置模塊
#2). 第三方模塊: 不是Python官方提供的模塊, 需要使用pip工具取安裝
"""
安裝方式:
#3). 自定義模塊
#導入模塊的過程: 實質是執行模塊內容的過程
from day09_code import website
website.login()
website.register()
print(website.name)
import verifycode
verify_string = verifycode.generate_str_code()
im = verifycode.draw_code_image(verify_string)
im.save('./hello.png')
"""
#導入所有信息時, 判斷模塊中是否有all屬性,
#沒有的話, 所有信息均可導入。
#有的話, 只有all列表里面指定的變量可以導入.
from day09_code.website import *
print(name)
print(passwd)
login()"""
包將有聯系的模塊組織在一起,有效避免模塊名稱沖突問題,讓應用組織結構更加清晰。
一個普通的python應用程序目錄結構:
import sound.efforts.echo 導入 sound.effects.echo 子模塊。但必須通過完整的名稱來引用
from sound.effects import echo
加載了 echo 子模塊,且使得在沒有包前綴的情況下也可以使用
from sound.effects.echo import echofilter
加載了 echo 字模塊,但這樣就可以直接調用它的 echofilter() 函數
import * 理論上是希望文件系統找出包中所有的子模塊,然后導入它們。
But 會花長時間,并出現邊界效應等。Python 解決方案是提供一個明確的包索引。
這個索引由 init.py 定義 all 變量,該變量為一列表, 只會導入指定的內容
"""
#導入模塊的過程, 實質時執行模塊的內容.
#導入包的過程, 實質是執行包里面的init.py初始化文件
"""
name = 'root'
passwd = 'westos'
def login():
print('login......')
def register():
print('register.......')
__all__ = ['login', 'register', 'name', 'passwd']
if __name__ == '__main__':
"""
__name__: 模塊的名稱,
如果是當作模塊導入, 結果為模塊名稱, 此處為website
如果不是當作模塊導入時, 結果為__main__
"""
print("正在調用website模塊.......")
print(__file__) # 打印文件的絕對路徑
print(__doc__) # 打印模塊的幫助文檔
1.為模塊文件創建一個文件夾,并將模塊文件復制到這個文件中(一般,文件夾的名字和模塊的名字一樣)
在文件夾中創建一個名為『setup.py』的文件,內容如下:
py_modules=[你需要發布的模塊名, 不需要.py]
2.將發布安裝到你的Python本地副本中:
python setup.py install
找到模塊的壓縮包
解壓
進入文件夾
執行命令sudo python setup.py install
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。