2017-08-09 20 views
0

有人可以向我解釋這個嗎? 當您導入Tkinter.Messagebox這實際上是什麼意思(點符號)? 我知道你可以導入Tkinter,但是當你導入Tkinter.Messagebox這究竟是什麼?這是課堂內的課程嗎?用點符號導入的Python

我是新的Python和點符號有時令我困惑。

+0

這是一個模塊內的類。這意味着只有Messagebox類可用,而導入Tkinter會導入所有的類。我建議在Python IDLE中嘗試一下,並與它一起玩。 – Vinny

+0

如果你閱讀文檔,我希望你能找到一個好的解釋,而不是在這裏SO –

+1

@Vinny:這不是模塊中的類。它是一個包內的模塊。 –

回答

1

當您在導入中放置該點時,您指的是您要導入的包/文件內的某些內容。 您輸入的內容可以是類,包或文件,每當您輸入一個點時,就會詢問內部實例中的某個內容。

parent/ 
    __init__.py 
    file.py 
    one/ 
     __init__.py 
     anotherfile.py 
    two/ 
     __init__.py 
    three/ 
     __init__.py 

比如你有這樣的,當你通過import parent.file你實際上進口可能含有類和變量另一個Python模塊,以便引用該文件中特定的變量或類,你比如做from parent.file import class

這可能走得更遠,導入另一個包內包裝或類文件內包等內(如import parent.one.anotherfile) 欲瞭解更多信息閱讀Python documentation這個問題。

+0

'import parent.file.class'沒有意義:這種導入語句形式只導入模塊和包。 (例如,嘗試'import decimal.Decimal',它不起作用。) –

+0

@MarkDickinson我編輯它,現在工作嗎?因爲他是初學者,所以我嘗試不包括'from .. import ..'。 – GeekyMo

+0

@GeekyMo我明白你告訴我什麼,但是當我導入Tkinter時,我也得到了一些函數來使用。在你的例子中,如果我導入父類,我什麼也得不到。 我的意思是父母只是一個文件夾嗎?它沒有任何內容。 那麼Tkinter是一個包還是一個模塊? –

2

import a.b進口b進入命名空間a,您可以通過a.b來訪問它。請注意,這僅適用於b是模塊。 (例如Python 3中的import urllib.request

from a import b然而,將b導入到當前名稱空間中,可通過b訪問。這適用於類,函數等

使用時要小心 - 進口:

from math import sqrt 
from cmath import sqrt 

兩個語句導入功能sqrt到當前的命名空間,但是,第二個import語句覆蓋的第一個。

相關問題