ImportError: cannot import name 'create_player'

ImportError: cannot import name 'create_player'

这是我第一次来这里,如果我忘记了什么,我很抱歉。

我正在尝试制作这款基于文本的角色扮演游戏。我有 2 个不同的文件:rpg 和 character_file。 rpg 是调用其他函数的主文件。我没有复制整个代码,因为有超过 1000 行,所以如果我需要添加任何内容,请告诉我。

所以这是角色扮演游戏中的那个:

import time
import gui
import character_file
import battle
import random

#mode, race and char_name have been defined in another function.
def create_player(mode, race, char_name):
 if mode == 2:
  if race == 1:
   player = Character.Goblin(char_name, app)
  elif race == 2:
   player = Character.Orc(char_name, app)
  elif race == 3:
   player = character.Uruk(char_name, app)
  elif race == 4:
   player = character.Wizard(char_name, app)
  else:  
   player = character.Troll(char_name, app)
 else:
  if race == 1:
   player = character.Elf(char_name, app)
  elif race == 2:
   player = character.Dwarf(char_name, app)
  elif race == 3:
   player = character.Human(char_name, app)
  elif race == 4:
   player = character.Hobbit(char_name, app)
  else:
   player = character.Wizard(char_name, app)
 return player

...

player = create_player(mode, race, char_name)

这是 character_file:

import time
import random
import rpg

...


class Character:
 defines main character attributes

class Dwarf(Character, app):
 Character.__init__(self, char_name, app)
 defines Dwarf attributes

当我运行这个时,它出现了一个AttributeError:'module'对象没有属性'character'

如果代码混乱或遗漏任何内容,我深表歉意。提前致谢!

更新:抱歉。这是回溯:

Traceback (most recent call last):
  File "F:\Documents\School\IT\Python_RPG - Copy\rpg.py", line 12, in <module>
    import character_file
  File "F:\Documents\School\IT\Python_RPG - Copy\character_file.py", line 12, in <module>
    import rpg
  File "F:\Documents\School\IT\Python_RPG - Copy\rpg.py", line 600, in <module>
    player = create_player(mode, race, char_name)
  File "F:\Documents\School\IT\Python_RPG - Copy\rpg.py", line 169, in create_player
    player = character_file.character.Elf(char_name, app)
AttributeError: 'module' object has no attribute 'character'

我认为这只是一个拼写错误(大写 "C")。

您应该在 character(或 characters)中重命名您的 character_file.py

此模块包含 类 的集合:

class Character:
    # [...]
    pass


class Dwarf(Character):
    # A sub-class of Character
    # [...]
    pass

要导入 类 你必须写:

import character  # or import characters

player = character.Dwarf(char_name, app)

这个声明是错误的:

class Dwarf(Character, app):

⇨ 您没有继承 app

您的构造函数应具有以下签名:

class Dwarf(Character):
    def __init__(self, char_name, app):
        super(Dwarf, self).__init__(char_name, app)
        # more init here