Xét:Python siêu() thừa kế và lập luận cần thiết
class Parent(object):
def altered(self):
print "PARENT altered()"
class Child(Parent):
def altered(self):
print "CHILD, BEFORE PARENT altered()"
super(Child, self).altered() # what are the arguments needed? Why Child and self?
print "CHILD, AFTER PARENT altered()"
Trong Python 2.7, Tại sao phải Child
được thông qua như là một cuộc tranh cãi với super()
cuộc gọi? Những gì phức tạp chính xác của việc sử dụng siêu thay vì chỉ để cho nó hoạt động.
Theo như tôi biết, nó phải làm với MRO. Nhưng tôi không đủ giỏi để giải thích nó cho một câu trả lời "thực sự". Có lẽ điều này sẽ giúp: http://rhettinger.wordpress.com/2011/05/26/super-considered-super/ Lưu ý rằng các đối số không cần thiết nữa trong Python 3. –
Vì vậy, đối số đầu tiên là "Con" là cho lớp bạn đang ở và không phải lớp bạn muốn kế thừa từ khi Phụ huynh là cơ sở? Một cái gì đó như thế tôi cho là vậy. Cũng cảm ơn cho đọc và tôi đang sử dụng Python 2,7 để được rõ ràng. Tôi sẽ tiếp tục đọc về siêu() –