Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 8, 2018 21:34:36

Serhii3577
Зарегистрирован: 2018-08-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Добрые люди, где ошибка? "NameError: name 'main' is not defined"

class Critter(object):
“”“Виртуальный питомец”“”
def __init__(self, name, hunger = 0, boredom = 0):
self.name = name
self.hunger = hunger
self.boredom = boredom
def __pass_time(self):
self.hunger += 1
self.boredom += 1
@property
def mood(self):
unhappiness = self.hunger + self.boredom
if unhappiness < 5:
m = “prekrasno”
elif 5 <= unhappiness <= 10:
m = “neploho”
elif 11 <= unhappiness <= 15:
m = “ne skazat chtobu xorosho”
else:
m = “uzasno”
return m
def talk(self):
print(“Menia zovut”,self.name,“i seichas ia chuvstv sebia”,self.mood)
self.__pass_time()
def eat(self, food = 4):
print(“Spasibo”)
self.hunger -= food
if self.hunger < 0:
self.hunger = 0
self.__pass_time()
def play(self, fun = 4):
print(“wooow”)
self.boredom -= fun
if self.boredom < 0:
self.boredom = 0
self.__pass_time()
def main():
crit_name = input(“Как вы назовёте свою зверушку? ”)
crit = Critter(crit_name)
choice = None
while choice != “0”:
print (“”“
Моя зверюшка
0-Выйти
1-Узнать о самочувствии зверюшки
2-Покормить зверюшку
3-Поиграть со зверюшкой
”“”)
choice = input(“Ваш выбор: ”)
print()
if choice == “0”:
print(“До свиданья”)
elif choice == “1”:
crit.talk()
elif choice == “2”:
crit.eat()
elif choice == “3”:
crit.play()
else:
print(“Выбачай ничого нема, гиии..”)
main()
input(“\n\nPress Enter,exit”)

Прикреплённый файлы:
attachment зверушк_профи.py (2,2 KБ)

Офлайн

#2 Авг. 8, 2018 22:03:34

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Добрые люди, где ошибка? "NameError: name 'main' is not defined"

предпоследняя строка main() это метод класса Critter а вы пытаетесь его вызвать напрямую не создав экземпляр класса. тогда так
Critter.main()

Офлайн

#3 Авг. 8, 2018 22:11:20

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Добрые люди, где ошибка? "NameError: name 'main' is not defined"

0) Код на форумах и тп нужно оформлять в специальные теги code
1) у вас функция main на одном урвоне отступов с методами класса, уберите отступ и все заработает
2) посмотрите что такое PEP8 и какие его основные рекомендации по написанию кода
3) освойте какой либо актуальные редактор исходного кода / IDE что бы оно помогало вам в написании кода и не допусканию ошибок



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Авг. 8, 2018 22:12:40

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Добрые люди, где ошибка? "NameError: name 'main' is not defined"

marvellik
там не метод, а основная функция - внутри которой уже инстацируется класс.
P.S. судя по всему автор топика не автор этого кода



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Авг. 8, 2018 23:27:11

Serhii3577
Зарегистрирован: 2018-08-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Добрые люди, где ошибка? "NameError: name 'main' is not defined"

Всем огромное СПАСИБО, не знал что здесь такая активность в помощи, но я уже сам разобрался.
Есть огромное желание стать профи в веб-программировании, изучаю всё сам, самоучка). Начал изучать ещё давно, потом запустил на время…, в общем сейчас как второй месяц уже учусь по книге Доусона, параллельно учусь также по книге Саммерфилда, а ещё Лутца закачал, но там пока сложнее для меня.Уже знаю не плохо HTML, CSS.
Ещё раз всем спасибо, я здесь буду частенько уже)))

Офлайн

#6 Авг. 8, 2018 23:35:11

Serhii3577
Зарегистрирован: 2018-08-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Добрые люди, где ошибка? "NameError: name 'main' is not defined"

забыл сказать, я тут впервые и пока не разобрался что тут к чему, за что заранее извиняюсь,буду рад за любые подсказки что к чему и как кому-то репутацию поднять.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version