Python: Obtenir le nom de l'instanciation de la classe?
Exemple:
class Class1:
def __init__(self):
self.x = Class2('Woo!')
class Class2:
def __init__(self, word):
print word
meow = Class1()
Comment faire dériver le nom de la classe qui a créé l'auto.x exemple? En d'autres termes, si on m'avait donné l'exemple de l'auto.x, comment puis-je obtenir le nom de "Class1'? À l'aide de self.x.__class__.__name__
évidemment ne vous donner la Classe 2 nom. Est-ce même possible? Merci.
x
est une variable locale, comment êtes-vous "recevoir"?Dans votre exemple
x
est une variable locale qui n'existe que temporairement lors de la meow
est créé. Et x
une instance de Class2
. Que demandez-vous? Veuillez corriger votre question, de sorte que cela a du sens.-1: Le code n'est pas pertinente pour la question. Veuillez post code qui est réellement pertinente pour votre question. Si vous ne pouvez pas poster de code qui est pertinent pour la question, nous ne pouvons pas aider, pouvons-nous?
Laissez-moi être clair, il x et auto.x n'est pas pertinent. C'était une simple question sur la capacité de l'aide de la structure comme un exemple. Il a été répondu, les autres savaient que je faisais référence. Oui, bien ce serait de l'auto.x, oui j'ai fait une faute de frappe tout en faisant un EXEMPLE rapide à expliquer. Pour moi, vous êtes juste fractionnement des cheveux à ce point, cependant, je vais éditer le post car c'est un gros problème pour vous. Merci pour le vote; classe réelle
N00bs lire ce site pour obtenir de l'aide. Si votre question est claire, alors ils continueront à bénéficier de votre question. Si votre question n'est pas claire, alors le site est encombré et qu'ils ne bénéficient pas de ce que vous avez posté. Le choix, pour être utile à d'autres-est la vôtre.
OriginalL'auteur Chuck | 2009-10-20
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas, à moins que vous passiez une instance de la "créateur" de la Classe 2() constructeur. par exemple,
Cela crée une inversion de lien entre les classes pour vous
eh bien, il est création d'un attribut, donc, soit je n'ai pas compris votre commentaire ou vous ne comprenez pas la réponse 😛
OriginalL'auteur workmad3
Définir une variable de la classe en question dans votre
__init__()
méthode que vous allez ensuite récupérer plus tard.Vous obtiendrez de meilleures réponses, si vous poser les bonnes questions. Celui-ci est assez floue.
OriginalL'auteur Paul McMillan
Votre question est très similaire à répondu ici. Notez que vous pouvez déterminer qui a créé l'instance dans son constructeur, mais pas après. De toute façon, le meilleur moyen est de passer créateur dans le constructeur explicitement.
OriginalL'auteur Denis Otkidach