Получение ошибки атрибута, когда значение уже присвоено - PullRequest
0 голосов
/ 15 апреля 2020

После того, как вы доберетесь до части, когда программа напечатает 6, она выдаст мне ошибку, которая упоминается ниже. Даже если значение правильно приписано. Я хочу, чтобы он печатал 6, когда значение Mario.x_location равно значению LifeShroom.x. Затем, после этого, я хочу увеличить значение Mario.x_location на единицу при каждом нажатии w. Введите yes, затем нажмите enter и введите w, чтобы понять, что я имею в виду. Что я делаю не так?

start = input('say yes: ')

class Mario:
    x_location = 4  #location of you

class LifeShroom:
    x = 4  #location of the object.

if start == 'yes':
  while start == 'yes':
    command = input('')  #press enter here, after you input yes. 

    if command == 'w':
      Mario.x_location += 1 #change Mario.x_location
      print(Mario.x_location,)

    rules = [Mario.x_location == LifeShroom.x,]

    if all(rules):
        LifeShroom = True

    if LifeShroom:
       print(6) #type w again after it prints 6 and you will get the error below. 

Точная ошибка, которую я получил:

Traceback (most recent call last):
  File "main.py", line 25, in <module>
    rules_8 = [Mario.x_location == LifeShroom.x,
AttributeError: 'bool' object has no attribute 'x'

1 Ответ

0 голосов
/ 15 апреля 2020

Я могу сказать, что вы делаете бесконечное l oop. Пока не существует scape l oop.

В первом операторе if не выполняется первый оператор if (if command == 'w':), но выполняются два других. В первом он уничтожает ваш класс (LifeShroom = True). Но это правда, поэтому он будет работать третьим. Ваша переменная LifeShroom - это больше не класс, а логическое значение (True).

Далее l oop больше нет класса LifeShroom, поэтому атрибут класса LifeShroom.x отсутствует.

...