Подтвердить что ты не робот

Python, получающий доступ к переменной суперкласса в дочернем классе

Я хотел бы получить доступ к значению self.x в дочернем классе. Как мне получить доступ к нему?

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()
4b9b3361

Ответ 1

Вы правильно обращались к переменной суперкласса; ваш код дает вам ошибку из-за того, как вы пытались ее распечатать. Вы использовали . для конкатенации строк вместо + и объединили строку и список. Измените строку

    print "Value of x = ". self.x

для любого из следующего:

    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)

Ответ 2

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