编写一个在python中禁用某些类方法的方法

时间:2017-02-26 19:57:28

标签: python

    class something(object):
            def __init__(self):
                    pass

            def method1(self):
                    pass

            def method2(self):
                    pass

            def method3(self):
                    pass

            def disable_method12(self):

我想编写一个方法“disable_method12”来禁用我的类中的method1和method2但不会禁用method3,我该怎么做?我应该写

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

1 个答案:

答案 0 :(得分:2)

你可以删除这样的方法:

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

或者更喜欢这样(感谢@volcano),这样你就可以重命名你的课程并且它仍然有用

    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'