Bạn đã đợi điều này rất lâu vì tôi đã tránh nói về những phương pháp Dunder Magic này trong một thời
gian dài.
Trong video này, cuối cùng chúng ta sẽ khám phá những gì họ làm.
Bây giờ chúng ta có thể xem cá thể của chúng ta có những gì dưới dạng các phương thức sử dụng phương thức rder.
Và chúng tôi đã nói với bạn rằng chúng được kế thừa từ lớp đối tượng cơ sở của chúng tôi.
Bây giờ điều này nhấn mạnh các phương pháp đặc biệt của chúng tôi.
Hãy nhớ cách chúng ta có những thứ như độ dài chẳng hạn, cho phép chúng ta cho biết độ dài của một mảng.
Chúng thực sự được thực hiện bằng cách sử dụng các phương pháp dunder này.
Chúng cho phép chúng tôi sử dụng các hàm cụ thể của Python trên các đối tượng được tạo thông qua lớp của chúng tôi.
Vì vậy, hãy để tôi cho bạn thấy những gì tôi muốn nói.
Chúng tôi sẽ tạo một lớp học mới và đây sẽ là một lớp học đồ chơi.
Bây giờ ở đây, chúng ta sẽ định nghĩa một món đồ chơi và khởi tạo nó với self.
Sau đó, chúng tôi sẽ nói rằng nó có màu sắc và h.
Bây giờ chúng ta sẽ nói màu sắc tương đương với màu sắc.
Vì vậy, đây sẽ là các thuộc tính của chúng tôi.
Và H.
Đáng kinh ngạc.
Có lớp học của chúng tôi.
Bây giờ, giả sử chúng ta muốn tạo một hình hành động.
Con số hành động này sẽ được tạo bằng đồ chơi, giả sử, màu đỏ và các độ tuổi.
Nó hoàn toàn mới, vì vậy nó là số không.
Bây giờ nếu tôi sử dụng một cái gì đó như, giả sử sẽ đi kèm với đối tượng này, nếu tôi thực hiện str hoặc action figure.
Chấm gạch dưới gạch dưới se tt ah như vậy.
Và chúng tôi in cái này.
Chúng tôi thấy rằng chúng tôi nhận được điều này.
Nó giống hệt như chúng ta đang làm.
Hình hành động SDR.
Như thế này.
Nhìn kìa.
Các phương thức dấu gạch dưới kép này là các phương thức đặc biệt mà Python nhận ra.
Ví dụ, Dunder STR.
Phương thức đặc biệt này cho phép chúng ta sử dụng action figure như thế này bằng cách sử dụng hàm str được tích hợp sẵn.
Trên thực tế, nếu bạn truy cập tài liệu Python trong phần tên phương thức đặc biệt.
Bạn sẽ thấy rằng chúng tôi có thể thực hiện các tùy chỉnh cơ bản của các phương thức dunder này.
Và đó là một danh sách dài tất cả những phương pháp khó sử dụng này mà chúng ta có thể sử dụng.
Hiện nay.
Đừng đi và đọc từng cái một.
Có rất nhiều và bạn sẽ không sử dụng chúng thường xuyên.
Chỉ có một số trường hợp cụ thể mà bạn sẽ sử dụng chúng và ý tưởng là biết cách sửa đổi
chúng và cách chúng hoạt động bên dưới mui xe.
Vì thế.
Hãy xem qua một vài ví dụ.
Ví dụ: hãy sửa đổi những gì SDR làm.
Tôi sẽ xác định của riêng tôi.
SDR tại đây.
Tôi sẽ tự gọi mình.
Và sau đó ở đây, tôi sẽ trả lại một cái gì đó khác.
Tôi sẽ quay trở lại, giả sử, một chuỗi SE.
Đó là, hãy nói, màu sắc tự học.
Nếu tôi chạy cái này.
Tôi bị đỏ.
Hãy nhớ cách tôi đã nói không sửa đổi các phương thức Dunder?
Chà, đôi khi bạn được phép.
Có thể có những trường hợp, trường hợp đặc biệt, nơi bạn muốn lớp của mình cư xử theo một cách nào đó.
Cũng giống như từ điển, danh sách, bộ giá trị và tất cả các đối tượng của chúng ta trong Python có thể hoạt động theo những cách nhất định.
Cách truy cập danh sách bằng số chỉ mục và truy cập từ điển bằng khóa.
Tất cả đều được thực hiện bằng các phương pháp tiêu chuẩn này.
Và bạn thấy ở đây rằng vì chúng tôi đã sửa đổi điều này, SDR bây giờ trả về màu đỏ khi được gọi trên con số hành
động.
Nó không thay đổi những thứ khác ngoài con số hành động.
Nếu tôi chạy cái này, bạn sẽ thấy rằng nó vẫn chạy con số hành động như thế này.
Bởi vì đây là một chuỗi.
SDR chỉ được sửa đổi khi chúng tôi sử dụng nó trên đối tượng cụ thể này.
Như vậy.
Chúng ta có thể làm những việc gọn gàng nào khác?
Chà, chúng ta cũng có thể thay đổi ý nghĩa của độ dài.
Vì vậy, chiều dài tôi có thể nói tự.
Và ở đây tôi chỉ có thể trở về.
Bây giờ nếu tôi in.
Độ dài của con số hành động.
Và tôi nhấp vào Chạy.
Tôi nhận được năm?
Rất tuyệt.
Nhân tiện, nếu gạch chân này hơi khó chịu, mà nói thẳng ra là nó hơi khó chịu, tôi sẽ nhấp vào cài
đặt ở đây và chỉ cần xóa mã thông minh để nó sẽ không cho tôi biết khi nào mã
của tôi sai, nhưng hy vọng chúng ta có thể tự mình gỡ lỗi.
Được rồi, vậy là xong.
Chúng tôi vừa thay đổi độ dài.
Dunder để trả lại năm.
Hãy tiếp tục thử nghiệm.
Chúng tôi cũng có thể thực hiện một số việc như gạch dưới, gạch dưới, xóa và xóa.
Chà, chúng ta thực sự sử dụng từ khóa xóa mà chúng ta chưa từng thấy trước đây.
Xóa bỏ.
Chúng ta chỉ có thể nói trở lại.
Đã xóa.
Bạn phải đi như thế này và chúng ta hãy in ở đây.
Bản in đã bị xóa nếu tôi bấm chạy.
Tôi thấy rằng tôi đã trở lại đã bị xóa.
Bây giờ từ khóa xóa tôi chưa thực sự dạy bạn vì nó không phải là thứ mà bạn sẽ thấy
nhiều.
Thông thường, điều này có thể gây ra một số lỗi buồn cười trong chương trình của chúng tôi mà cá nhân tôi muốn tránh, nhưng từ khóa xóa
sẽ xóa một số loại biến mà chúng tôi có thể đã mắc phải trong chương trình của mình.
Được rồi, còn gì nữa không?
Hãy thay đổi điều này.
Để sử dụng một cái gì đó được gọi là cuộc gọi.
Và than là một trong những điều thú vị.
Hãy nói điều đó với than, chúng ta sẽ quay trở lại và hãy nói có.
Dấu chấm hỏi.
Điều thú vị về Carl là bây giờ nó mang lại cho lớp đồ chơi của chúng ta một số siêu năng lực.
Chúng ta có thể nói con số hành động và sau đó nói, tốt, với lệnh gọi, bây giờ chúng ta thực sự có thể gọi đối tượng thực tế
bằng các dấu ngoặc này.
Vì vậy, bằng cách sử dụng lệnh gọi, tôi có cách đặc biệt này để gọi một hàm, nhân tiện, bên dưới mui
xe, cách chúng ta có thể gọi các hàm là sử dụng lệnh gọi dunder này.
Và nếu tôi nhấp vào Chạy.
Tôi có?
Đúng.
Làm thế nào là mát đó là?
Được rồi.
Điều cuối cùng, bởi vì tôi nghĩ bạn đang bắt đầu có ý tưởng về điều này.
Như tôi đã nói, tất cả đều có sẵn ở đây.
Thông thường, bạn không muốn ghi đè chúng, nhưng bạn chỉ muốn biết rằng bạn có quyền làm như
vậy nếu bạn chọn.
Cái tiếp theo được gọi là get item.
Vì vậy, chúng ta hãy xác định get item.
Một lần nữa, chúng tôi sẽ sử dụng self làm tham số đầu tiên và sau đó giả sử tôi cho chỉ mục và ở
đây chúng tôi sẽ trả về dấu chấm tự và hãy thêm một thuộc tính trước khi chúng tôi thêm nó.
Tôi sẽ nói tự chấm chính tả của mình cho từ điển của tôi và sau đó thêm tên.
Bằng yo yo.
Và chúng ta hãy làm gì có vật nuôi bằng sai?
Bây giờ sử dụng điều này, tôi có thể nói rằng tôi đã thành công.
Và trả lại hàng dựa trên chỉ số mà chúng tôi cung cấp cho nó.
Vì vậy, hãy để tôi cho bạn thấy những gì tôi muốn nói.
Nếu bây giờ tôi in.
Con số hành động.
Dấu chấm.
Và ở đây, thay vì thực hiện dấu chấm, chúng tôi thực hiện dấu ngoặc vuông giống như chúng tôi truy cập có lẽ lấy
một mục từ điển.
Bây giờ chúng ta có thể sử dụng get item, cho biết chúng ta có những thuộc tính nào trong tên?
Vì vậy, hãy nói tên và nếu tôi in ô này.
Quên thêm a.
Dấu phẩy ở đây.
Hãy thử lại lần nữa.
Và nếu tôi cuộn xuống, bạn có thể thấy tôi thực sự rất giỏi trong việc đọc lỗi.
Namer Name action figure không được xác định vì nó không phải là fuga.
Cái đó tốt hơn.
Nhìn kìa.
Tên của tôi.
Yo Yo đã có thể truy cập bằng cách sử dụng ký hiệu ngoặc này bằng cách sử dụng mục nhận.
Đánh bại.
Rất, rất tuyệt.
Vì vậy, những phương pháp ma thuật đặc biệt này thực sự thú vị bởi vì nó cho phép chúng ta thực hiện tốt một số việc sửa
đổi tùy chỉnh các lớp của chúng ta.
Và bạn cũng có thể hiểu cách trong Python được xây dựng trong các kiểu mặc định có quyền truy cập và khả năng có tất cả các
cú pháp đặc biệt này.
Bây giờ chúng tôi cũng có sức mạnh đó.
Hãy nghỉ ngơi và tập một chút.