2009-02-28 46 views
4

我剛開始使用Python,我想使用外部RSS類。我在哪裏放課,如何導入?我想最終能夠分享python程序。Python中的外部類

回答

1
from [module] import [classname] 

模塊位於python路徑的某處。

+0

我會說略有不同。「python path」讓我想到了PYTHONPATH這個環境變量。 PYTHONPATH實際上通常是空的,但sys.path永遠不會是空的,並且sys.path決定了模塊的位置。 PYTHONPATH正是添加到默認sys.path條目中的內容。 – 2009-02-28 21:04:29

1

關於模塊和包:

  • 一個模塊是.py結尾的文件。你可以把你的課程放在這樣一個文件中。正如Andy所說的那樣,它需要在你的python路徑中(PYTHONPATH)。通常你會把附加模塊放在腳本所在的同一目錄中,但是可以直接導入。

  • 軟件包是一個包含__init__.py(可以爲空)幷包含模塊文件的目錄。然後您可以導入一個la from <package>.<module> import <class>。再次,這需要在您的Python路徑。

您可以找到更多in the documenation

+0

使用`反引號`引用格式化字符,例如`__init__`。 – gahooa 2009-02-28 21:05:28

13

關於import聲明:

(良好的書面記錄是在http://effbot.org/zone/import-confusion.htm和Python的教程在http://docs.python.org/tutorial/modules.html進入詳細)

有兩種普通方法是導入代碼到Python程序。

  1. 模塊
  2. 軟件包

模塊是簡單地在的.py結尾的文件。爲了python,它必須存在於搜索路徑中(如sys.path中定義的那樣)。搜索路徑通常由正在運行的.py的相同目錄以及python系統目錄組成。

考慮到以下目錄結構:

myprogram/main.py 
myprogram/rss.py 

從main.py,您可以 「進口」 的RSS類運行:

import rss 
rss.rss_class() 

#alternativly you can use: 
from rss import rss_class 
rss_class() 

封裝提供了一種更加結構化的方式來包含更大的Python程序。它們只是一個包含__init__.py以及其他python文件的目錄。

只要軟件包目錄位於sys.path上,就可以使用與上述完全相同的軟件。


要找到你的當前路徑,運行此:

import sys 
print(sys.path) 
2

我真的不喜歡回答這麼晚了,但我並不完全滿足於現有的答案。

我剛剛開始Python,我想使用外部RSS類。我在哪裏放課,如何導入?

你把它放在一個python文件中,並給python文件擴展名爲.py。然後,您可以導入代表該文件的模塊,並訪問該類。假設你想導入它,你必須把python文件放在你的導入搜索路徑的某個地方 - 你可以在運行時用sys.path看到這個,並且可能最需要知道的是站點包(特定於安裝)和當前目錄('')通常位於導入搜索路徑中。當你有一個單一的同類項目時,你通常將它放在與其他模塊相同的目錄中,並讓它們從同一個目錄中相互導入。

我想最終能夠共享python程序。

將其設置爲獨立文件後,可以使用distutils將其設置爲分發。這樣你就不必擔心它應該安裝在哪裏,distutils會爲你擔心。還有很多其他的分發方式,許多操作系統特定的distutils適用於模塊,但是如果您想分發適合用戶運行的程序,則可以使用其他選項,例如在Windows上使用py2exe

至於模塊/軟件包的區別,好吧,在這裏。如果你有一大堆你想要分解的類,這樣你就沒有一大堆python文件了,你可以把它分解成一個目錄中的多個python文件,並給目錄一個__init__.py。需要注意的重要一點是,從Python來看,軟件包和其他模塊沒有區別。一個包是一個模塊,它只是在文件系統上表示一個模塊的一種不同方式。同樣,一個模塊而不是只是一個.py文件 - 如果是這種情況,sys不會是一個模塊,因爲它沒有.py文件。它是內置於口譯員的。在文件系統上有無數種表示模塊的方法,因爲您可以添加可以創建除目錄和.py文件之外的方式來表示模塊的導入掛鉤。假設,人們可以創建一個導入鉤子,使用spidermonkey將JavaScript文件作爲Python模塊加載。

0

如果你想存儲你的RSS文件在不同的地方使用sys.append(「」)和噘嘴模塊在該目錄中,並使用 進口或進口*

0

第一個文件,你有創建類,是 「first.py」

first.py:

class Example: 
    ... 

創建第二個文件,要使用包含在 「first.py」 之類,這是 「second.py」

myprogram/first.py 
myprogram/second.py 

然後在第二個文件,調用包含在第一個文件中的類,你只需鍵入:

second.py:

from first import Example 
...