Например, у меня есть 4 класса. 1 базовый класс под названием Pet и три производных класса, называемых Dog, Cat и Mouse. Если пользователь выбирает собаку, например, я хотел бы отключить функцию перемещения кошки-мышки. Как мне это сделать?Отключение функции в базовом классе в python
Так что в зависимости от того, какой пользователь выбирает, другие функции, производные от 2-х классов, должны быть отключены. Этот выбор пользовательского животного является динамическим. Все три животных будут созданы. Но только животное выбирает пользователь может быть перемещено пользователем
Код Пример:
class Pet(object):
def __init__(self):
#some code
def move(self, dx, dy):
#some code
class Cat(Pet):
def __init__(self):
#some code
class Dog(Pet):
def __init__(self):
#some code
class Mouse(Pet):
def __init__(self):
#some code
Отменить его, чтобы выбросить исключение или отобразить сообщение об ошибке. В противном случае не подклассифицируйте Pet, так как перемещение является единственной функцией. –
Я не уверен, что понимаю ваш вопрос. Каждый экземпляр будет только «Собака» или «Кошка» или «Мышь» - только один метод «move» будет вызываться в каждом экземпляре на основе того, что вы создаете. –
Я не совсем понимаю. Если пользователь «выбирает» собаку, вы создаете экземпляр «Собака», верно? Как кошка и мышь участвуют в этом? Влияет ли реализация 'move' по-разному в зависимости от того, какой подкласс используется? – dano