2016-10-08 6 views
0

In Python 3, wenn Sie eine Klasse haben, wie folgt aus:Python Get Variablenname Innerhalb der Klasse

LETTERS = list('abcdefghijklmnopqrstuvwxyz') 
class letter: 
    def __init__(self, name): 
     self.number = LETTERS.index(name) 
     self.nextLetter = LETTERS[self.number+1] 
     self.previousLetter = LETTERS[self.number-1] 

und erstellen Sie eine Instanz von Brief, MyLetter, wie folgt aus:

myLetter = letter('c')

Im Brief, wie bekomme ich den Variablennamen? (myLetter in diesem Fall)

+0

Ich folge nicht. Du hast eine Instanz von 'letter' erstellt (du solltest deine Klassennamen ->' class Letter' groß schreiben) namens 'myLetter' und frage nun, wie man' myLetter' aus 'letter' erhält? – idjaw

+0

In 'Brief' versuche ich' myLetter' zu bekommen. – nedla2004

+0

innerhalb von 'Brief',' myLetter' heißt 'self'. – Daniel

Antwort

2

Denken Sie an myLetter als Zeiger auf die Klasseninstanz von letter. Zum Beispiel, wenn Sie haben:

LETTERS = list('abcdefghijklmnopqrstuvwxyz') 
class letter: 
    def __init__(self, name): 
     self.number = LETTERS.index(name) 
     self.nextLetter = LETTERS[self.number+1] 
     self.previousLetter = LETTERS[self.number-1] 

myLetter = letter('c') 
myLetter2 = myLetter 

Beide MyLetter und myLetter2 sind Aliase für die exakt gleiche MyLetter Instanz. Zum Beispiel:

myLetter.number = 50 
print(myLetter2.number) 

>>> 50 

So etwas zu finden, den Namen der letter Instanz innerhalb der letter Klasse zurückzukehren ist nicht eindeutig.

Verwandte Themen