2014-08-27 73 views
2

調用的方法/功能可以說我有一個類,如:從類變量

class Foo: 

    foo_list = [{'foo1':foo1,'foo2':foo2}] #issue here..Can't use foo1 or self.foo1 here 

    def __init__(self): 
     pass 

    def run(self): 
    responses = [func() for func_name, func in Foo.foo_list.items()] 

    def foo1(self): 
    return True 

所以基本上,我想用類變量類的方法以及.. 我如何做到這一點? 我有什麼意義嗎?

+0

你想要一個靜態方法。試試['staticmethod'裝飾器](https://docs.python.org/3/library/functions.html#staticmethod)。 – 2014-08-27 23:48:28

回答

5

嘛,你其實可以...你只需要重新安排他們,使他們由您使用它們的時間定義:

class Foo: 

    def run(self): 
     responses = [func(self) for func_name, func in Foo.foo_dict.items()] 

    def foo1(self): 
     return True 

    def foo2(self): 
     return False 

    foo_dict = {'foo1':foo1,'foo2':foo2} 
+1

對。 Python解釋器模型的一個隱藏缺陷。感覺就像我在寫C,有時候! – jpaugh 2014-08-27 23:49:54

+0

啊..我看..工作.. :) – Fraz 2014-08-27 23:50:02