本周學(xué)習(xí)-9.2-模塊和包構(gòu)建_第1頁
本周學(xué)習(xí)-9.2-模塊和包構(gòu)建_第2頁
本周學(xué)習(xí)-9.2-模塊和包構(gòu)建_第3頁
本周學(xué)習(xí)-9.2-模塊和包構(gòu)建_第4頁
本周學(xué)習(xí)-9.2-模塊和包構(gòu)建_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余30頁可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

???.pyclass

module_class:mc_classattr

=

1def

init

(self,

mc_instattr

=

1):self.mc_instattr

=

mc_instattrdef

mc_func(self):return

"Method

with

a

count

of

{}".format(self.mc_classattr)def

module_func():print("Module

Function")if

name

==

"

main

":module_var

=

1print("Module

Statement")"這是模塊描述"class

module_class:mc_classattr

=

1def

init

(self,

mc_instattr

=

1):self.mc_instattr

=

mc_instattrdef

mc_func(self):return

"Method

with

a

count

of

{}".format(self.mc_classattr)if

name

==

"

main

":import

sysmc

=

module_class(sys.argv[1])print("Module

Statement")dir()import

mprint(dir(m))['

builtins

',

'

cached

',

'

doc

',

'

file

','

loader ',

'

name ',

'

package ',

'

spec

','module_class']????pkgpkg1pkg2

init

.pym1.pym2.py

init

.pym1.py

init

.pyPyCharm'pkg1

->

m1'def

mecho(any):print("pkg1-m1:

{}".format(any))'pkg1

->

m2'def

mecho(any):print("pkg1-m2:

{}".format(any))'pkg2

->

m1'def

mecho(any):print("pkg2-m1:

{}".format(any))print("[INFO]:導(dǎo)入pkg模塊")print("[INFO]:導(dǎo)入pkg1模塊")print("[INFO]:導(dǎo)入pkg2模塊")import

pkg.pkg1.m1import

pkg.pkg1.m2import

pkg.pkg2.m1pkg.pkg1.m1.mecho(123)pkg.pkg1.m2.mecho("Python123")pkg.pkg2.m1.mecho(["Python",123])[INFO]:導(dǎo)入pkg模塊[INFO]:導(dǎo)入pkg1模塊

[INFO]:導(dǎo)入pkg2模塊

pkg1-m1:123pkg1-m2:

Python123pkg2-m1:

['Python',

123]每個(gè)包僅被導(dǎo)入一次,且包導(dǎo)入按照層次結(jié)構(gòu)進(jìn)行import

pkg.pkg1pkg.pkg1.m1.mecho(123)pkg.pkg1.m2.mecho("Python123")Traceback

(most

recent

call

last):File"...",

line

5,

in

<module>pkg.pkg1.m1.mecho(123)AttributeError:

module

'pkg.pkg1'

has

no

attribute

'm1'直接導(dǎo)入包不行,需要進(jìn)行到模塊層次from

pkg.pkg1import

m1,m2m1.mecho(123)m2.mecho("Python123")[INFO]:導(dǎo)入pkg模塊[INFO]:導(dǎo)入pkg1模塊pkg1-m1:

123pkg1-m2:

Python123from..import直接導(dǎo)入具體模塊,可以簡(jiǎn)化調(diào)用時(shí)命名空間表達(dá)from

pkg.pkg1import

*m1.mecho(123)m2.mecho("Python123")Traceback

(most

recent

call

last):File

"...",

line

5,

in

<module>m1.mecho(123)NameError:

name

'm1'

is

not

definedfrom..import

*需要額外代碼來編寫???all'pkg1

->

m1'def

mecho(any):print("pkg1-m1:

{}".format(any))'pkg1

->

m2'def

mecho(any):print("pkg1-m2:

{}".format(any))'pkg2

->

m1'def

mecho(any):print("pkg2-m1:

{}".format(any))print("[INFO]:導(dǎo)入pkg1模塊")

all

=

['m1',

'm2']print("[INFO]:導(dǎo)入pkg2模塊")

all

=

['m1']from

pkg.pkg1import

*m1.mecho(123)m2.mecho("Python123")[INFO]:導(dǎo)入pkg模塊

[INFO]:導(dǎo)入pkg1模塊

pkg1-m1:123pkg1-m2:

Python123

all

屬性支持from..import

*功能???每個(gè)包僅被導(dǎo)入一次,且包導(dǎo)入按照層次結(jié)構(gòu)進(jìn)行直接導(dǎo)入包不能調(diào)用功能,需要導(dǎo)入到模塊層次??import???????project1pkg1m1.pym2.pypkg2m1.pyproject2pkg1m3.pym4.pypkg2m3.py??def

mecho(any):print("pkg1-m1:

{}".format(any))def

mecho(any):print("pkg2-m1:

{}".format(any))'pkg2

->

m1'def

mecho(any):print("pkg2-m2:

{}".format(any))def

mecho(any):print("pkg1-m3:

{}".format(any))def

mecho(any):print("pkg2-m3:

{}".format(any))'pkg2

->

m1'def

mecho(any):print("pkg2-m4:

{}".format(any))import

syssys.path

+=

['project1',

'project2']import

pkg1.m1import

pkg1.m3pkg1.m1.mecho(123)pkg1.m3.mecho("Python")print(pkg1.

path

)test.pyimport

syssys.path

+=

['project1',

'project2']import

pkg1.m1import

pkg1.m3pkg1.m1.mecho(123)pkg1.m3.mecho("Python")print(pkg1.

path

)將最頂層加入sys.path變量import

syssys.path

+=

['project1',

'project2']import

pkg1.m1import

pkg1.m3pkg1.m1.mecho(123)pkg1.m3.mecho("Python")print(pkg1.

path

)頂層

內(nèi)結(jié)構(gòu)成為一個(gè)命名空間pkg1-m1:

123pkg1-m3:

Pythonimport

syssys.path

+=

['project1',

'project2']import

pkg1.m1import

pkg1.m3pkg1.m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論