溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python模塊的使用及自建模塊的導(dǎo)入方法舉例

發(fā)布時(shí)間:2020-05-20 14:07:08 來(lái)源:網(wǎng)絡(luò) 閱讀:418 作者:楓葉云 欄目:編程語(yǔ)言

模塊使用
模塊:

模塊式pyth2.on組織代碼的基本方式

一個(gè)python腳本可以單獨(dú)運(yùn)行,也可以導(dǎo)入另一個(gè)腳本中運(yùn)行,當(dāng)腳本被導(dǎo)入運(yùn)行時(shí),我們將其稱為模塊(module)

所有的點(diǎn)p為文件都可以作為一個(gè)模塊導(dǎo)入

模塊名與腳本的文件名相同,例如我們編寫(xiě)了一個(gè)名為hello.pv的腳本則可以在另一個(gè)腳本中用import hello.py來(lái)導(dǎo)入它

包:

python的模塊可以按目錄組織為包

創(chuàng)建一個(gè)包的步驟:

創(chuàng)建一個(gè)名字為包名字的目錄,在該目錄下創(chuàng)建一個(gè)__init__.py文件,根據(jù)需要在該目錄下存放腳本文件或已編譯的擴(kuò)展及子包

語(yǔ)法:

import pack.m1,pack.m2,pack.m3
sys.path

舉例:

In [1]: import sys

In [2]: sys.path

Out[2]:

['',

'/usr/bin',

'/usr/lib64/python27.zip',

'/usr/lib64/python2.7',

'/usr/lib64/python2.7/plat-linux2',

'/usr/lib64/python2.7/lib-tk',

'/usr/lib64/python2.7/lib-old',

'/usr/lib64/python2.7/lib-dynload',

'/usr/lib64/python2.7/site-packages',

'/usr/lib64/python2.7/site-packages/gtk-2.0',

'/usr/lib/python2.7/site-packages',

'/usr/lib/python2.7/site-packages/IPython/extensions',

'/root/.ipython']

vim /root/.bashrc

最后加個(gè)export PYTHONPATH=/root/library

成功加入到Python環(huán)境變量中

In [1]: import sys

In [2]: sys.path

Out[2]:

['',

'/usr/bin',

 '/root/library',

'/usr/lib64/python27.zip',

'/usr/lib64/python2.7',

'/usr/lib64/python2.7/plat-linux2',

'/usr/lib64/python2.7/lib-tk',

'/usr/lib64/python2.7/lib-old',

'/usr/lib64/python2.7/lib-dynload',

'/usr/lib64/python2.7/site-packages',

'/usr/lib64/python2.7/site-packages/gtk-2.0',

'/usr/lib/python2.7/site-packages',

'/usr/lib/python2.7/site-packages/IPython/extensions',

'/root/.ipython']

可被其他腳本調(diào)用的腳本:

#!/usr/bin/env python

#

def wordCount(s):

    chars = len(s)

    words = len(s.split())

    lines = s.count('\n')

    print lines,words,chars

if __name__=='__main__':  #設(shè)置后,本腳本內(nèi)的函數(shù)可被其他腳本調(diào)用test.py

    s = open('/etc/passwd').read()

    wordCount(s)

#

[root[@localhost](https://my.oschina.net/u/570656) 20181203]# python words.py

27 52 1324

[root[@localhost](https://my.oschina.net/u/570656) 20181203]# wc /etc/passwd

27   52 1324 /etc/passwd

test.py中導(dǎo)入words.py:

[root[@localhost](https://my.oschina.net/u/570656) 20181203]# cat test.py

#!/usr/bin/env python

import words

#

s="""hello world python"""

words.wordCount(s)

[root[@localhost](https://my.oschina.net/u/570656) 20181203]# python test.py

27 52 1324

[root[@localhost](https://my.oschina.net/u/570656) 20181203]# ls

test.py  words.py  words.pyc   ###調(diào)用words后自動(dòng)生成編譯的文件。

模塊和包:
模塊是一個(gè)可以導(dǎo)入的腳本文件

包是一些按目錄組織的模塊和子包,目錄下有init.py文件,此文件可以存放包的信息。

導(dǎo)入模塊和包的語(yǔ)法:

import,import as

from ... import ...
In [2]: from mode import mode
2 10 158
In [3]: mode.wordCount('abc')
0 1 3

In [4]: import mode.mode
In [5]: mode.mode.wordCount('hello')
0 1 5

In [7]: from mode.mode import wordCount
In [8]: wordCount('aaa')
0 1 3

#重新命名為wc
In [10]: from mode.mode import wordCount as wc
In [11]: wc('aaaddd')
0 1 6

#from package.mod import wordCount
#from package import mod

In [10]: from package import mod

In [11]: mod.wordCount('abc 123')
0 2 7

In [15]: from package.mod import wordCount

In [16]: wordCount('ava adsf34')
0 2 10
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI