Page 129 - Em Học Python
P. 129

KHỞI TẠO ĐỐI TƯỢNG



                       Khi tạo ra một đối tượng, đôi khi ta muốn đặt một vài giá trị (còn được gọi là các  các

                                       ​
               thuộc tính  ⟨properties⟩ ) để về sau còn dùng.  Khởi tạo  ⟨initialize⟩ đối tượng là việc ta chuẩn bị
                                                                                ​
                                       ​
                                                                               ​
               sẵn sàng cho đối tượng đó.
                       Giả sử nếu muốn đặt số đốm trên người hươu vào các đối tượng khi chúng được tạo

               ra — tức là, khi chúng được khởi tạo. Để làm việc đó, ta viết ra một hàm gọi là  __init__ (để
                                                                                                        ​
               ý hai dấu gạch dưới đằng trước và đằng sau tên hàm, tổng cộng là bốn cái đấy nhé). Đây là

               một kiểu hàm đặc biệt của các lớp trong Python và ta buộc phải viết tên như thế. Hàm  init
               là cách để ta có thể đặt các thuộc tính vào đối tượng ngay khi chúng được tạo ra. Python

               luôn luôn gọi hàm này khi ta tạo ra một đối tượng mới. Viết hàm ấy như thế này:


                           ​
                          ​
               >>> class Giraffes:
                   ​
                                     ​
                    ​
                              ​
                                       ​
                         ​
                             ​
                       def __init__(self, spots):
                           self.giraffe_spots = spots
                                                                            ​
                                                                                            ​
                                                                         ​
                       Đầu tiên ta viết hàm  init nhận hai tham số  self và spots như sau def
                                                 ​
                                                                                  ​
               __init__(self, spots):. Cũng như các hàm khác được viết bên trong lớp, hàm  init cũng
                                          ​
                         ​
                                                                                                       ​
               cần phải nhận  self làm tham số đầu tiên. Sau đó ta gán tham số  spots cho một biến
                                                                                        ​
                                    ​
               (chính là thuộc tính mà ta vừa nói) tên là  giraffe_spots bằng tham số  self bởi đoạn code
                                                                         ​
                                                                                             ​
               self.giraffe_spots = spots. Đoạn code này có thể tạm hiểu là “Giữ giá trị của tham số
                                               ​
               spots để sau dùng lại (thông qua biến  giraffe_spots).” Các biến ở trong lớp cũng có thể
                                                                      ​
                     ​
               được truy cập thông qua  self y như hàm ở trong lớp vậy.
                                              ​
                       Tiếp, nếu tạo ra vài bạn hươu mới (Ozwald và Gertrude) và in ra số đốm của chúng,
               ta sẽ thấy tác dụng của hàm khởi tạo:
               >>> ozwald = Giraffes(100)
                   ​
               >>> gertrude = Giraffes(150)
                   ​
                    ​
                   ​
                          ​
               >>> print(ozwald.giraffe_spots)
               100
               >>> print(gertrude.giraffe_spots)
                          ​
                    ​
                   ​
               150
                                                                               Cách sử dụng lớp và đối tượng           103
   124   125   126   127   128   129   130   131   132   133   134