Попытка удалить метод split из дочернего класса после init . Провел мое исследование, но не смог найти ответы ... Я знаю, что на самом деле есть более очевидные решения, чем удаление и восстановление метода, но я принципиально хочу знать, что, черт возьми, не так ... Помогите, пожалуйста! ps извините за код начального уровня ниже:
def remove_base_function(base_class,method):
def inner_decorator(function):
def final_wrapper(base_class,method):
save = method
del method
function()
setattr(base_class, method.__name__ , save)
return final_wrapper
return inner_decorator
class Deck:
def __init__(self,cards):
self.cards = cards
def __str__(self):
#Creating a string from list which is generated from imported list's elements.
return "".join([f"{b} of {a}\n" for a,b in self.cards])
def __len__(self):
return len(self.cards)
def shuffle(self):
shuffle(self.cards)
print('Deck has been shuffled!')
def split(self):
half = len(self.cards)//2
self.deck1 = self.cards[0:half]
self.deck2 = self.cards[half-1:-1]
print('Deck is split into 2')
class Hand(Deck):
@remove_base_function(Deck,Deck.split)
def __init__(self,cards):
super().__init__(cards)
def add(self,new_cards):
self.cards.extend(new_cards)
def remove(self):
return self.cards.pop()