[Закрыто на данный момент] Определение класса Python не определено.ошибка - PullRequest
0 голосов
/ 02 октября 2018

Я программирую на своем телефоне.Я создал персонажа класса, чтобы хранить всю информацию о персонаже, такую ​​как Hp.После определения hp я создаю функцию getHp (), которая возвращает hp.Позже, когда я вызываю «getHp ()» в моей функции «stats ()», он говорит, что «getHp ()» не определен.Это делает то же самое для всех моих функций в моем классе.Просто fyi "stats ()" - это просто функция, которая собирает все мои переменные (внутри класса) и печатает их.

#Adventure game
import random, time

#===========================#
class character():
      self.xp = 0
    def getLvl(self, xp):
            if xp < 5:
                  level = 1
            elif xp < 20:
                  level = 2
            elif xp < 60:
                  level = 3
            elif xp < 120:
                  level = 4
            else:
                  level = 5
            return level
          self.level = getLvl(self, xp)
#-----------------------------------------#
      self.inventory = {"knife": 1 , "bread": 2 , "gold": 10}

      self.armor = 0
#-----------------------------------------#
      self.attack = 6
      def getAttack(self, attack):
            return attack
#-----------------------------------------#
      self.dmg = 1
      def getDmg(self, dmg):
            return dmg
#-----------------------------------------#
      self.hp = 10 * level + armor
      def getHp(self, hp):
            return hp
      def updateHp(self, playerHp):
            self.hp = playerHp
#-----------------------------------------#
      def stats(self):
            self.getLvl(xp)
            self.getHp(hp)
            self.getAttack(attack)
            self.getDmg(dmg)
            print("Player: \n")
            print("Hp: ", hp, "\nLvl: ", level, "\nAttack: ", attack, "\nDmg: ", dmg)
            print("Inventory: ", self.inventory)
#===========================#

character.stats()

Ps Извините за стену кода!

1 Ответ

0 голосов
/ 02 октября 2018

Когда вы вызываете функции внутри класса, вы используете "себя"?В вашем методе stats () он должен выглядеть следующим образом:

def stats(self):
    self.getHp()

Это способ, который знает python для обращения к getHp () в классе.

Вы можете найти больше информации о Classes и self в документации на python

https://docs.python.org/3/tutorial/classes.html

...