2017-02-12 4 views
-1

ich OOP-Konzepte in Python bin zu praktizieren und ich auf dieses Problem kam:Speicher von Attributen zu einem Objekt in Python

class User: 
    def __init__(self, username, email, password, 
     firstname, lastname, phone): 

     self.username = "" 
     self.email = "" 
     self.password = "" 
     self.firstname = "" 
     self.lastname = "" 
     self.phone = "" 

user=User('x','y','z','f','v','c') 
print(vars(user)) 

Ergebnis:

{'username': '', 'firstname': '', 'lastname': '', 'phone': '', 'password': '', 'email': ''} 

Die Werte werden nicht auf das Objekt gespeichert . Wie kann ich das beheben?

Antwort

3

Sie müssen die Funktionsargumente den Instanzvariablen zuweisen.

class User: 
    def __init__(self, username, email, password, 
     firstname, lastname, phone): 

     self.username = username 
     self.email = email 
     self.password = password 
     self.firstname = firstname 
     self.lastname = lastname 
     self.phone = phone 

user=User('x','y','z','f','v','c') 
print(vars(user)) 
1

an die entsprechenden Instanzvariablen die Konstruktorargumente speichern:

def __init__(self, username, email, password, firstname, lastname, phone): 
    self.username = username 
    # etc. 
Verwandte Themen