Классы Python ничего не делают, если вы их не создадите. В этом случае вы объявляете свой класс Dog
с помощью метода __init__
, который делает несколько вещей (включая печать), но это только объявление - экземпляр класса еще не создан, поэтому функция __init__
имеетеще не запущен.
Предполагая, что вы хотите, чтобы все работало в одном файле, я бы предложил добавить следующее в конец вашего файла:
if __name__ == '__main__':
dog = Dog()
Это будетчтобы новый экземпляр класса Dog
был создан при запуске сценария, вы должны увидеть вывод своих операторов печати на консоль.
Если ваш код имеет отступ, как показано в исходном вопросе, то проблема с отступом. В настоящее время почти весь код находится внутри класса Dog
, а не на уровне файлов, поэтому он не будет работать при выполнении сценария, ваше форматирование должно выглядеть следующим образом:
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
print("A dog is created")
def sit(self):
print(self.name + "has sat")
dog = Dog("Rex", 4)
print(dog.name)