2011-09-02 17 views
72

Python'ın multiprocessing modül için kod üzerinde arıyorum ve bu satır içerir:Ne yapar? Python bir ithalat deyiminde demek?

from ._multiprocessing import win32, Connection, PipeConnection 

yerine

from _multiprocessing import win32, Connection, PipeConnection 

_multiprocessing öncesi dönem olan ince bir fark

arasında. Bu ne anlama geliyor? Neden dönem? açık relative imports için yeni bir sözdizimi var

+2

Göreli olarak içe aktarma adı verilir: http://docs.python.org/tutorial/modules.html – Aillyn

+0

"." Olmadan, ana komut dosyanızın yanında bazı anlamsız nedenlerden dolayı '_multiprocessing.py' dosyanız varsa, "çok işlem" kırılacaktı. '' Ile kendi modülünü almasını sağlar. –

+2

yararlı soru! –

cevap

65

. Mevcut paketten ithalat yapmak anlamına gelir.

+7

"Geçerli paket" ne tanımlar? – fraxture

+2

İçe aktarma paketinin * olduğu yerden * yazmalıdır. Temel olarak geçerli ad alanı veya paket dizini anlamına gelir. – Keith

+0

Teşekkürler, sanırım ne demek istediğini biliyorum. Sadece açık olmak gerekirse, bir örnek verebilir misiniz? – fraxture

16

Modül adındaki nokta, ilgili modül alımı için kullanılır (bkz. here ve here, bölüm 6.4.2).

Sen curent paketin ancak ebeveyn (ler) için değil atıfta bulunarak, birden fazla nokta kullanabilirsiniz. Bu sadece paketler içinde kullanılmalıdır, ana modülde mutlaka mutlak modül isimleri kullanılmalıdır.