2013-08-30 40 views
14

Tôi muốn truy cập giá trị của self.x trong lớp con. Làm cách nào để truy cập?python truy cập biến siêu lớp trong lớp con

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

Ngẫu nhiên, bạn có thể chỉnh sửa traceback lỗi của bạn vào câu hỏi? Điều đó sẽ giúp làm cho câu hỏi này phù hợp hơn với những người dùng Google trong tương lai, vì đó là vấn đề không có bất kỳ điều gì với các lớp học siêu hạng hoặc các lớp học trẻ em. –

+0

Tôi nghĩ bạn nên đề cập đến tiêu đề là "truy cập biến mẫu của lớp siêu từ lớp con". Có một sự khác biệt giữa biến lớp và biến cá thể trong python. – Sean

Trả lời

13

Bạn đã truy cập biến siêu lớp một cách chính xác; mã của bạn cung cấp cho bạn một lỗi vì cách bạn cố in nó. Bạn đã sử dụng . để ghép nối chuỗi thay vì + và nối một chuỗi và một danh sách. Thay đổi dòng

print "Value of x = ". self.x 

với bất kỳ những điều sau đây:

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

Các vấn đề liên quan