2013-03-28 72 views
0

所以我有以下情況:如何讓模塊中的功能可用於某個類?

我有一個模塊,有幾個函數定義。我想創建一個具有這些功能的類。

我只想問哪種方式最好? 選項1

import ModuleWithFunctions 

class bla(object): 

    ModuleWithFunctions = ModuleWithFunctions 

選項2

class bla(object): 

    import ModuleWithFunctions 

我知道選項2是針對PEP 8所以我想人們會說選項1,但是,如果我想要的一切可用爲:

bla.(function) 

而不是:

bla.ModuleWithFunctions.(function) 

我怎樣才能做到這一點與option1?

+2

在我看來,像一類是不是真的是你想在這種情況下。想要詳細說明嗎? – camelNeck 2013-03-28 10:11:14

回答

5

你通常不會這樣做。

通常將在baseclass_module創建一個基類來代替:

# baseclass_module.py 

class BaseClass(object): 
    def method1(self): 
     # ... 

    def method2(self): 
     # ... 

然後使用在其他模塊:

from baseclass_module import BaseClass 

class Bla(BaseClass): 
    # ... 
+0

Stahp擊敗所有人:(:D – TerryA 2013-03-28 10:13:32

+0

hm ...好吧,所以基本上使用繼承作爲實現這一目的的一種方式......有道理......我不想這樣做的主要原因是具有函數的模塊我沒有寫和想要儘可能不改變那裏的代碼 – evan54 2013-03-28 10:22:29

+3

@ evan54:然後我希望這個模塊中的函數不用作爲方法,它們不會有'self'參數,一個。 – 2013-03-28 10:23:30

相關問題