2013-08-30 12 views
14

Chciałbym uzyskać dostęp do wartości self.x w klasie dziecka. Jak mam do niego dostęp?python uzyskujący zmienną super klasy w klasie podrzędnej

class ParentClass(object): 

    def __init__(self): 
     self.x = [1,2,3] 

    def test(self): 
     print 'Im in parent class' 


class ChildClass(ParentClass): 

    def test(self): 
     super(ChildClass,self).test() 
     print "Value of x = ". self.x 


x = ChildClass() 
x.test() 
+1

Nawiasem mówiąc, można edytować traceback błędzie na pytanie? Pomogłoby to sprawić, by ta kwestia była bardziej odpowiednia dla przyszłych pracowników Google, ponieważ problem ten nie ma nic wspólnego z super klasami lub klasami dzieci. –

+0

Myślę, że lepiej wspomnieć tytuł jako "dostęp do zmiennej instancji super klasy z klasy potomnej". Istnieje różnica między zmienną klasy i instancją w pythonie. – Sean

Odpowiedz

13

Dostęp do zmiennej super klasy poprawnie; Twój kod zawiera błąd z powodu sposobu, w jaki próbowałeś go wydrukować. Użyto . do łączenia ciągów znaków zamiast + i połączono ciąg znaków i listę. Zmienić linię

print "Value of x = ". self.x 

do któregokolwiek z poniższych:

print "Value of x = " + str(self.x) 
    print "Value of x =", self.x 
    print "Value of x = %s" % (self.x,) 
    print "Value of x = {0}".format(self.x) 
3
class Person(object): 
    def __init__(self): 
     self.name = "{} {}".format("First","Last") 

class Employee(Person): 
    def introduce(self): 
     print("Hi! My name is {}".format(self.name)) 

e = Employee() 
e.introduce() 

Hi! My name is First Last

Powiązane problemy