Tôi ăn mày với trăn. Tôi không thể hiểu thừa kế và __init__()
.
class Num:
def __init__(self,num):
self.n1 = num
class Num2(Num):
def show(self):
print self.n1
mynumber = Num2(8)
mynumber.show()
KẾT QUẢ: 8
Điều này là OK. Nhưng tôi thay thế Num2
bằng
class Num2(Num):
def __init__(self,num):
self.n2 = num*2
def show(self):
print self.n1,self.n2
KẾT QUẢ: Error. Num2 has no attribute "n1".
Trong trường hợp này, làm thế nào có thể Num2
truy cập n1
?
__init__
phương thức trong lớp dẫn xuất, nó được kế thừa. Đó là bởi vì "nếu một thuộc tính được yêu cầu không được tìm thấy trong lớp, thì việc tìm kiếm sẽ tiến hành tìm kiếm trong lớp cơ sở." (doc)