2017-05-31 38 views
-1

有什麼辦法來分類功能 這樣我就可以這樣調用一個函數:Python的分類功能

category something(): 
    def test(): 
     [Code] 

    def test2(): 
     [Code] 

something.test() 
something.test2() 

我想用類的,但似乎他們總是需要一個實例如自我作爲一種屬性。

如果我錯了,請隨時糾正我,我是一種新的python,沒有那麼多的經驗。

現在,我一直在使用不同的文件,但我經常遇到循環依賴問題,並想問問是否有解決此問題的簡單方法。

這是爲了清理代碼,並知道當你有很多代碼時,一個函數可能屬於哪一部分。

+0

什麼是「歸類」功能的目的?你想創建2個同名的函數嗎?或者只是按照他們屬於同一個「事物/類別」的方式來組織它們? –

回答

0

你實際上並不需要一個實例 - 你可以聲明每個方法(或,實際上,將其轉化爲)「靜態」的方法:

class Foo: 

    @staticmethod 
    def Bar(x, y): 
     return x + y 

    @staticmethod 
    def Baz(x, y): 
     return x - y 

print(Foo.Bar(3, 4)) 

第一個參數作爲參考的解釋到實例(通常,但不一定,稱爲self)在靜態方法中不會發生。

但是,創建充滿靜態方法的類將會是class的某種超標記使用。在Python分類資源更常用的方法是把它們分爲modules and packages(即單獨的文件和/或目錄):

# in Foo.py 
def Bar(x, y): 
    return x + y 

然後:

>>> import Foo 
>>> Foo.Bar(3, 4) 
7 
+0

所以我只需要寫@staticmethod盈方的每個函數我定義?或者,我可以通過在開始的某個地方添加一個靜態方法來創建一個整體類? –

+0

你將不得不每次都使用裝飾器。但真的:不要那樣做。使用像我們其他人一樣的模塊。 – jez