2017-02-26 36 views
0
class something(object): 
      def __init__(self): 
        pass 

      def method1(self): 
        pass 

      def method2(self): 
        pass 

      def method3(self): 
        pass 

      def disable_method12(self): 

我想寫禁用方法1和method2在我的課,但不會禁用方法3的方法「disable_method12」一類的一些方法,我怎麼能做到這一點的方法?我要寫信編寫禁用蟒蛇

  def disable_method12(self): 
        method1(self) = False 
        method2(self) = False 
+0

你不能禁止的東西只有'del' – abccd

回答

2

,你可以刪除這樣的方法:(感謝@volcano)

def disable_method12(self): 
     del something.method1 
     del something.method2 

或更好這樣的,所以你可以重命名你的類,它仍然有效

def disable_method12(self): 
     del self.__class__.method1 
     del self.__class__.method2 

測試method2電話:

s = something() 
s.method2() # first time it works 
s.disable_method12() 
s.method2() 

我在最後一行得到:

AttributeError: 'something' object has no attribute 'method2' 
+0

感謝!!!!!!!!!! – joe

+0

只是好奇 - 你試過聲明* disable_method *作爲一個類的方法?要麼 - 或* self .__ class __。method1 *。在其方法中明確命名類看起來有點錯誤 – volcano

+0

好評,編輯。我嘗試了類和靜態方法,它也可以。 –