Так что я пытался понять классы, подклассы, экземпляры и все, что есть,. Я пытался написать простой код, похожий на более сложный код, который я видел (или, по крайней мере, мне было трудно следовать), но У меня возникли проблемы с подключением всех частей.Python: Классы/подклассы и наследование/определение подкласса
Вот что я хочу.
У нас есть класс-отель. Когда вы заходите в отель, у вас есть имя и номер номер. Номер вашей комнаты определяет, на каком этаже вы находитесь.
class Hotel(object):
def __init__(self, name, room_number):
self.name = name
self.room_number = room_number
self.floor = self.room_number//10
Так
Abe = Hotel("Abe", 104)
print "%s is in room %d on floor %d." % (Abe.name,
Abe.room_number,
Abe.floor)
Abe находится в комнате 104 на этаже 1.
Bob = Hotel("Bob", 225)
print "%s is in room %d on floor %d." % (Bob.name,
Bob.room_number,
Bob.floor)
Боб находится в комнате 225 на этаже 2.
И я хочу, чтобы первый и вторых этажей, которые будут подклассами отеля. На этаже Fisrtst будет торговый автомат, а у второго будет компьютерное лобби.
class FirstFloor(Hotel):
# Something should go here?
def vending_machine(): # something inside the()?
print "You buy a soda and feel refreshed."
class SecondFloor(Hotel):
# Something should go here?
def computer_lobby(): # something inside the()?
print "You have learned to write python!"
Что бы я должен добавить, так что номер номер человека ставится в определяет, может ли он использовать торговые автоматы или компьютер лобби?
Извините, если что-то не выглядит совершенно правильно, я довольно новичок в этом, и это мой первый пост в stackoverflow.
Наследование - это отношения «есть». В вашем дизайне имеет смысл сказать: «Третий этаж - отель» - не совсем. Ваш отель отслеживает, сколько этажей у него есть ... так, сколько этажей занимает третий этаж? Вы также должны абстрагироваться от пола. Прямо сейчас вам нужно дублировать класс для каждого пола, когда вам, вероятно, понадобится один класс «Этаж», и вы поместите несколько из них в список или dict в классе «Отель». Тогда вы можете с уверенностью сказать: «В моем отеле есть полы». – tdelaney
Я вижу. В этом есть смысл. Поэтому, если я так делаю, как бы я дал каждому этажу уникальную функцию, которую вы не можете получить с других этажей? – Daniel