Python Enfant/Parent classes, de la Classe Enfant de Retour de la Chaîne deux fois?
Question facile et probablement très évident à l'un de vous, mais Im pas sûr de pourquoi cela se fait. Voici donc les trois fichiers python Ive fait.
Personnage principal de la classe:
class Character():
"""
This is the main parents class for creation of
characters, be they player, NPC or monsters they
shall all share common traits
"""
def __init__(self, name, health, defense):
"""Constructor for Character"""
self.name = name
self.health = health
self.defense = defense
Joueur de classe:
from character import *
class Player(Character):
"""
The player class is where heros are made
They inherit common traits from the Character class
"""
def __init__(self, name, health, defense, str, int):
Character.__init__(self, name, health, defense)
self.str = str
self.int = int
Init:
from Letsago.player import Player
hero = Player("Billy", 200, 10, 10, 2)
print hero.name
Il en résulte:
Billy
Billy
Pourquoi est-il retourné deux fois?
OriginalL'auteur Paul Duncan | 2013-06-10
Vous devez vous connecter pour publier un commentaire.
J'ai mis en exemple dans un fichier appelé
test.py
:et exécuté le suivant (python 2.7 sur ubuntu 13.04):
et le suivant dans la console
Essayer d'isoler l'exemple comme je l'ai fait dans un seul fichier et de l'exécuter (en dehors d'un shell interactif). Vérifiez également vos modules et de vérifier votre
from character import *
. Assurez-vous que vous importez le bonPlayer
classefrom Letsago.player import Player
àfrom player import *
et son retourBilly
une fois comment il le devrait. Pourquoi faut-il faire deux fois la première façon de le faire? J'ai vérifié et c'est de l'importation de la file de droite, je me demande? Eh bien soit il fonctionne et merci pour l'astuce. Je suis juste pas certain pourquoi elle ne le ferait queIl semble que vous avez la classe de Joueur dupliqué dans vos modules:
Letsago.player.Player
etcharacter.Player
OriginalL'auteur Bruno Penteado