2017-09-07 6 views
1

Ceci est ma première fois ici, donc je suis désolé si j'ai oublié quelque chose. J'essaye de faire ce jeu rpg basé sur le texte. J'ai 2 fichiers différents: rpg et character_file. rpg est le fichier principal qui appelle les autres fonctions. Je n'ai pas copié tout le code car il y a plus de 1000 lignes donc si je dois ajouter quelque chose, faites le moi savoir.ImportError: impossible d'importer le nom 'create_player'

C'est donc celui de rpg:

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) 

et c'est le 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 

Quand je lance cela, il vient avec un AttributeError: objet 'module' n'a pas attribut 'character'

Je suis désolé si le code est en désordre et s'il me manque quelque chose. Merci d'avance!

Mise à jour: Désolé. Voici la traceback:

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' 
+0

Pourriez-vous s'il vous plaît poster le retraçage? –

+0

Vous avez importé 'character_file' mais utilisez' character' si ce n'est pas un exemple - probablement l'erreur est ici. En outre, vous pouvez importer de cette manière 'from import_file – AndMar

Répondre

0

Je pense que c'est seulement une faute de frappe (majuscule "C").

Vous devez renommer votre character_file.py en character (ou characters).

Ce module contient une collection de classes:

class Character: 
    # [...] 
    pass 


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

Pour importer les classes que vous devez écrire:

import character # or import characters 

player = character.Dwarf(char_name, app) 

Cette déclaration est erronée:

class Dwarf(Character, app): 

⇨ Vous n » t hériter le app.

Votre constructeur doit avoir la signature suivante:

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