Page 155 - Em Học Python
P. 155

Ta vừa tạo ra một đối tượng và gọi nó là  harry, rồi ta tạo ra một bản sao của nó và
                                                                      ​
               gọi là  harriet. Đây là hai đối tượng hoàn toàn khác nhau nhé, mặc dù cùng chủng loại.
                              ​
               Làm thế này ở đây tuy chỉ giúp tiết kiệm được tí chút công gõ code, nhưng khi các đối

               trượng trở nên phức tạp hơn, có khả năng nhân bản chúng lên sẽ giúp ích nhiều lắm đấy.


                       Ta cũng có thể dùng  copy để tạo và sao chép cả một mảng các đối tượng  Animal.
                                                 ​
                                                                                                        ​
                                                                  ​
                                                           ​
                                      ​
                   ​
                                                     ​
               >>> harry = Animal('hippogriff', 6, 'pink')
                                       ​
                                                  ​
               >>> carrie = Animal('chimera', 4, 'green polka dots')
                   ​
                                                        ​
                                                                              ​
                                      ​
                   ​
                                                                 ​
               >>> billy = Animal('bogill', 0, 'paisley')
                                                      ​
                                                ​
                   ​
               >>> my_animals = [harry, carrie, billy]
                   ​
               >>> more_animals = copy.copy(my_animals)
                          ​
               >>> print(more_animals[0].species)
                   ​
                    ​
               hippogriff
                    ​
                   ​
               >>> print(more_animals[1].species)
                          ​
               chimera
                       Ba dòng đầu ra tạo ra ba đối tượng  Animal, đặt là  harry,
                                                                              ​
                                                                 ​
               carrie, và billy. Dòng thứ tư ta nhét chúng hết vào mảng
                           ​
                                 ​
                       ​
               my_animals. Tiếp ta sử dụng hàm copy để tạo ra một mảng mới
                           ​
               more_animals. Cuối cùng ta hiển thị ra giống của hai con đầu tiên
                              ​
                ​
               ([0] và [1]) của mảng  more_animals và thấy rằng chúng giống y
                       ​
                                                     ​
                    ​
                           ​
               như mảng gốc:  hippogriff và chimera. Ta vừa tạo ra bản sao của cả
                                               ​
                                                       ​
                                           ​
               một mảng mà không cần phải khởi tạo lại từng đối tượng một.
                       Nhưng hãy xem nếu ta thay đổi gì đó của một trong số mấy đối tượng  Animal của
                                                                                                     ​
               mảng gốc  my_animals (từ  hippogriff sang ghoul) thì sao nhé. Python sẽ sửa luôn ở cả
                                                            ​
                                                                  ​
                                                      ​
                                      ​
               mảng  more_animals đấy:
                                    ​
                                                 ​
                   ​
               >>> my_animals[0].species = 'ghoul'
                          ​
                    ​
               >>> print(my_animals[0].species)
                   ​
               ghoul
                          ​
                   ​
                    ​
               >>> print(more_animals[0].species)
               ghoul
                                                                                                          ​
                                                                           Các module hay dùng trong Python          129
   150   151   152   153   154   155   156   157   158   159   160