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
这是我第一次来这里,如果我忘记了什么,我很抱歉。
我正在尝试制作这款基于文本的角色扮演游戏。我有 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