ну, если вы не хотите использовать, если не объявлять функции или удалять их, вы всегда можете добавить их!
Пример:
def function1():
print("I'm function 1")
print("[LOG] Declared function1 {}".format(function1))
if input("Active? [y/n]").lower() == "y":
active = True
else:
active = False
class MyClass:
def __init__(self):
if active:
self.function1 = function1
print("[LOG] Class initalized")
def function2(self):
print("I'm function 2")
print("[LOG] Declared MyClass {}".format(MyClass))
obj = MyClass()
obj.function2()
obj.function1()
Вывод (если да) :
myuser@UbuntuVm:~/Desktop$ python test.py
[LOG] Declared function1 <function function1 at 0x7f53cd4450d0>
Active? [y/n]y
[LOG] Declared MyClass <class '__main__.MyClass'>
[LOG] Class initalized
I'm function2
I'm function 1
Вывод (когда нет):
myuser@UbuntuVm:~/Desktop$ python test.py
[LOG] Declared function1 <function function1 at 0x7f9c54c090d0>
Active? [y/n]n
[LOG] Declared MyClass <class '__main__.MyClass'>
[LOG] Class initalized
I'm function 2
Traceback (most recent call last):
File "test.py", line 23, in <module>
obj.function1()
AttributeError: 'MyClass' object has no attribute 'function1'
Думаю, это то, что вы имели в виду, вы даже можете изменить функции, когда active - False.