Chào mừng trở lại.
Trong video trước, tôi đã hướng dẫn các bạn cách gọi một phương thức từ một lớp con của lớp cha.
Vì vậy, trong trường hợp của chúng tôi, chúng tôi đã thực hiện tấn công dấu chấm người dùng.
Để chạy phương thức tấn công và người dùng.
Bây giờ tôi đã loại bỏ phương pháp tấn công từ bây giờ vì tôi muốn thử một cái gì đó khác.
Tôi muốn tạo một hàm init ở đây và hàm init này sẽ tự hoạt động.
Và sau đó giả sử rằng người dùng sẽ nhận được, giả sử email.
Bởi vì tất cả người dùng trò chơi của chúng tôi cần phải có email.
Và ở đây chúng tôi sẽ chỉ nói email tự chấm sẽ bằng email.
Đẹp và đơn giản.
Bây giờ ở đây.
Nếu tôi chạy mã này và hãy xóa cuộc tấn công dấu chấm của người dùng ngay bây giờ.
Vì vậy, chúng tôi có cùng một trình hướng dẫn mà chúng tôi vừa thêm này hoặc xin lỗi init này.
Và chúng tôi đã chiến thắng thuật sĩ của chúng tôi.
Vì vậy, nếu tôi chạy wizard ở đây và giả sử chúng tôi muốn chạy Wizard một email.
Nếu tôi bấm Chạy.
Hừ!
Tôi có.
Đối tượng Wizard không có thuộc tính.
E-mail.
Hừ!
Nhưng tôi nghĩ người dùng sẽ được gọi khi chúng tôi tạo trình hướng dẫn, phải không?
Khi chúng tôi khởi tạo Wizard One.
Vấn đề là, mặc dù chúng ta có thể kế thừa, chẳng hạn, nếu tôi làm dấu chấm, chúng ta có thể
kế thừa.
Đăng nhập.
Từ người dùng.
Và nếu tôi nhấp vào chạy, chúng tôi thấy rằng chúng tôi kế thừa điều đó.
Trình hướng dẫn đã có một hàm init đã là một phương thức khởi tạo, phải không?
Vì vậy, làm thế nào chúng ta có thể giải quyết điều này?
Chà, một cách là chỉ cần thêm email vào đây, phải không?
Và chỉ cần có email.
Thuộc tính ngay dưới đây.
Nhưng vấn đề với điều này là gì?
Chà, nó không hiệu quả, phải không?
Bởi vì nếu tôi tạo một lớp Cung thủ, tôi sẽ phải làm điều tương tự.
Và khi chúng tôi biết rằng tất cả các thuộc tính này sẽ giống nhau trên tất cả các lớp con của chúng tôi, chúng tôi muốn làm
điều đó ở đây.
Vì vậy, một cách hiệu quả hơn để làm điều này là gì?
Chúng tôi muốn gọi phương thức init của người dùng từ bên trong ở đây.
Đúng.
Bởi vì mỗi khi chúng ta khởi tạo một trình hướng dẫn mới, thì hàm init này sẽ được gọi.
Vì vậy, cách để làm điều đó là nói người dùng dấu chấm.
Gạch dưới gạch dưới trong đó.
Và sau đó cho nó tự.
Và sau đó gửi email.
Và sau đó email là thứ mà chúng ta chuyển vào.
Vì vậy, nếu tôi đi xuống đây, tôi có thể nói.
Merlin tại gmail. com sẽ là email.
Vì vậy, bây giờ nếu tôi làm, hãy nói.
Chấm email cho Wizard One và tôi nhấp vào Run.
Tôi lại nhận được email của Merlin.
Tất cả những gì chúng tôi đã làm là chúng tôi gọi là phương thức init.
Của người dùng bên trong trình hướng dẫn.
Vì vậy, khi chúng tôi khởi tạo một trình hướng dẫn mới, chúng tôi chạy hàm này và bên trong hàm này, chúng tôi chạy init chấm người
dùng và chuyển vào email mà chúng tôi đã chuyển vào dưới dạng đối số ở đây.
Bây giờ, đây là một cách để làm điều đó.
Và sau đó có một cách khác, và nó được gọi là siêu.
Và đó là một từ khóa.
Như bạn có thể thấy, nó đang được đánh dấu ở đây.
Và tất cả những gì chúng tôi làm là chạy siêu tốc.
Và Super là đề cập đến lớp cha hoặc lớp trên trình hướng dẫn, là người dùng.
Và đây thực sự là một bổ sung mới của Python 2. 2.
Với Super, chúng tôi thực sự không còn cần đến bản thân nữa, vì vậy mã của chúng tôi trông sạch hơn và tất cả những gì chúng tôi vượt qua là điều này
và nếu chúng tôi nhấp vào chạy.
Chúng tôi vẫn nhận được câu trả lời đúng.
Siêu.
Cho phép chúng tôi giới thiệu người dùng theo cách này và không phải lo lắng về việc vượt qua bản thân.