2017-05-25 117 views
0

我試圖創建一個包含字符串的字典類屬性調用類的靜態方法的類的靜態方法的引用:從類屬性

class Foo: 

    references = { 
     'string a' : Foo.function_a, 
     'string b' : Foo.function_b 
    } 

    @staticmethod 
    def function_a(): 
     return 0 

    @staticmethod 
    def function_b(): 
     return 1 

從類中調用Foo的是解決:

NameError: name 'Foo' is not defined 

是否有任何優雅的方式來創建一個類屬性引用到類的靜態方法?

+0

雖然我不明白你想達到什麼...但是,而不是Foo.function_b你應該self.function_b和函數應該在調用之前定義 – Eliethesaiyan

回答

4

靜態方法不是問題,問題是你試圖引用尚未定義的方法和類。這工作:

class Foo: 
    @staticmethod 
    def function_a(): 
     return 0 

    @staticmethod 
    def function_b(): 
     return 1 

    references = { 
     'string a' : function_a, 
     'string b' : function_b 
    } 

class定義自己的命名空間,你可以參考的功能function_aFoo,而你需要做的,他們已經被定義因此