30/09/2018, 17:39
Hàm super trong Python dùng để làm gì?
e đọc 1 vài ví dụ python, thấy có cái hàm super hay xuất hiện trong class, có ai biết là hàm này để làm j vs dùng như nào ko ạ??
Bài liên quan
e đọc 1 vài ví dụ python, thấy có cái hàm super hay xuất hiện trong class, có ai biết là hàm này để làm j vs dùng như nào ko ạ??
Theo mình hiểu thì hàm này để truy cập vào các hàm của base class. VD:
Thì khi khởi tạo 1 instance của Child bạn sẽ truyền vào 2 biến:
childInstance = Child(property, childProperty)
Lưu ý là Base class phải inherit từ object thì các class khác mới inherit từ nó được. Mình xem video youtube của Trevor Payne thì thấy nói thế
Đại loại thế, mình cũng mới xem qua video nói về class trong python, chứ chưa code thực tế
Theo link này: Understanding Python super() with init() methods thì trong python 3 bạn chỉ cần viết:
super().__init__()
thay vìsuper(Child, self).__init__()
Cho mình hỏi với. Mình có class Base và class Child có inherit từ Base class như ví dụ của bạn.
Tuy nhiên trong 2 class này có 2 method có tên giống nhau có tên
sameName():
Làm sao để sau khi tạo instance từ Child class mình có thể gọi method
sameName():
của Base class mà không cần phải khai báosuper()
trong Child class.Câu hỏi của mình có thể diễn đạt lại như thế này: Trong Python, khi tạo object của Child class ta có thể gọi các method của Base class khi class Child inherit class Base. Nhưng nếu 2 class này có method trùng tên nhau thì làm thế nào object có thể gọi được class đó của Base mà không cần phải khai báo thêm trong Child class (lúc này có thể gọi method của Child như bình thường bằng object.meThod1())
Sorry vì mình newbie, có thể câu hỏi của mình hơi ngốc
Thì trong Function Child(Base).
Tạo 1 name = Base.sameName()
thì không dùng Super nữa.
dùng thì Child.name thui bác