Đối tượng trong đối số lớp Python là gì?
Các hàm tạo lớp là một phần cơ bản của lập trình hướng đối tượng trong Python. Chúng cho phép bạn tạo và khởi tạo đúng các đối tượng của một lớp nhất định, làm cho các đối tượng đó sẵn sàng để sử dụng. Các hàm tạo của lớp kích hoạt nội bộ quy trình khởi tạo của Python, quy trình này trải qua hai bước chính. tạo cá thể và khởi tạo cá thể Show
Nếu bạn muốn tìm hiểu sâu hơn về cách Python xây dựng các đối tượng bên trong và tìm hiểu cách tùy chỉnh quy trình, thì hướng dẫn này là dành cho bạn Trong hướng dẫn này, bạn sẽ
Với kiến thức này, bạn sẽ có thể điều chỉnh việc tạo và khởi tạo các đối tượng trong các lớp Python tùy chỉnh của mình, điều này sẽ cho phép bạn kiểm soát quá trình khởi tạo ở cấp độ nâng cao hơn Để hiểu rõ hơn về các ví dụ và khái niệm trong hướng dẫn này, bạn nên làm quen với lập trình hướng đối tượng và Python Tiền thưởng miễn phí. Nhấp vào đây để có quyền truy cập vào Bảng cheat Python OOP miễn phí chỉ cho bạn các hướng dẫn, video và sách hay nhất để tìm hiểu thêm về Lập trình hướng đối tượng với Python Trình xây dựng lớp của Python và quy trình khởi tạoGiống như nhiều ngôn ngữ lập trình khác, Python hỗ trợ lập trình hướng đối tượng. Tại trung tâm của các khả năng hướng đối tượng của Python, bạn sẽ tìm thấy từ khóa, cho phép bạn xác định các lớp tùy chỉnh có thể có để lưu trữ dữ liệu và cung cấp các hành vi Khi bạn có một lớp để làm việc, thì bạn có thể bắt đầu tạo các phiên bản hoặc đối tượng mới của lớp đó, đây là một cách hiệu quả để sử dụng lại chức năng trong mã của bạn Tạo và khởi tạo các đối tượng của một lớp nhất định là một bước cơ bản trong lập trình hướng đối tượng. Bước này thường được gọi là xây dựng hoặc khởi tạo đối tượng. Công cụ chịu trách nhiệm chạy quá trình khởi tạo này thường được gọi là hàm tạo lớp Loại bỏ các quảng cáoLàm quen với các hàm tạo lớp của PythonTrong Python, để xây dựng một đối tượng của một lớp nhất định, bạn chỉ cần gọi lớp đó với các đối số thích hợp, giống như cách bạn gọi bất kỳ hàm nào >>>
Trong ví dụ này, bạn xác định 5 bằng cách sử dụng từ khóa 4. Lớp này hiện đang trống vì nó không có thuộc tính hoặc phương thức. Thay vào đó, phần thân của lớp chỉ chứa một câu lệnh 7 như một câu lệnh giữ chỗ không làm gì cảSau đó, bạn tạo một thể hiện mới của 5 bằng cách gọi lớp bằng một cặp dấu ngoặc đơn. Trong ví dụ này, bạn không cần truyền bất kỳ đối số nào trong cuộc gọi vì lớp của bạn chưa nhận đối sốTrong Python, khi bạn gọi một lớp như bạn đã làm trong ví dụ trên, bạn đang gọi hàm tạo của lớp, tạo, khởi tạo và trả về một đối tượng mới bằng cách kích hoạt quy trình khởi tạo bên trong của Python Điểm cuối cùng cần lưu ý là gọi một lớp không giống như gọi một thể hiện của một lớp. Đây là hai chủ đề khác nhau và không liên quan. Để làm cho thể hiện của một lớp có thể gọi được, bạn cần triển khai một phương thức đặc biệt, phương thức này không liên quan gì đến quy trình khởi tạo của Python Hiểu quy trình khởi tạo của PythonBạn kích hoạt quy trình khởi tạo của Python bất cứ khi nào bạn gọi một lớp Python để tạo một phiên bản mới. Quá trình này trải qua hai bước riêng biệt mà bạn có thể mô tả như sau
Để chạy bước đầu tiên, các lớp Python có một phương thức đặc biệt gọi là , chịu trách nhiệm tạo và trả về một đối tượng trống mới. Sau đó, một phương thức đặc biệt khác, lấy đối tượng kết quả, cùng với các đối số của hàm tạo lớp Phương thức 2 lấy đối tượng mới làm đối số đầu tiên của nó, 3. Sau đó, nó đặt bất kỳ thuộc tính thể hiện bắt buộc nào thành trạng thái hợp lệ bằng cách sử dụng các đối số mà hàm tạo của lớp truyền cho nóNói tóm lại, quá trình khởi tạo của Python bắt đầu bằng một lệnh gọi hàm tạo của lớp, lệnh này sẽ kích hoạt trình tạo cá thể, 3, để tạo một đối tượng trống mới. Quá trình tiếp tục với trình khởi tạo cá thể, 2, lấy các đối số của hàm tạo để khởi tạo đối tượng mới được tạoĐể khám phá cách quy trình khởi tạo của Python hoạt động bên trong, hãy xem xét ví dụ sau về lớp 6 triển khai phiên bản tùy chỉnh của cả hai phương thức, 3 và 2, cho mục đích trình diễn
Đây là một sự cố về những gì mã này làm
Với 6 tại chỗ, bạn có thể khám phá cách hoạt động của quy trình khởi tạo trong thực tế. Lưu mã của bạn vào tệp có tên 8 và trong cửa sổ dòng lệnh. Sau đó chạy đoạn mã sau>>>
Gọi hàm tạo của lớp 9 tạo, khởi tạo và trả về một thể hiện mới của lớp. Thể hiện này sau đó được gán cho biến 0Trong ví dụ này, lệnh gọi hàm tạo cũng cho bạn biết các bước mà Python chạy bên trong để xây dựng thể hiện. Đầu tiên, Python gọi 3 và sau đó là 2, dẫn đến một phiên bản mới và được khởi tạo đầy đủ của 6, như bạn đã xác nhận ở cuối ví dụĐể tiếp tục tìm hiểu về khởi tạo lớp trong Python, bạn có thể thử chạy cả hai bước theo cách thủ công >>>
Trong ví dụ này, trước tiên bạn gọi 3 trên lớp 6 của mình, chuyển chính lớp đó làm đối số đầu tiên cho phương thức. Cuộc gọi này chỉ chạy bước đầu tiên của quá trình khởi tạo, tạo một đối tượng mới và trống. Lưu ý rằng việc tạo một thể hiện theo cách này sẽ bỏ qua lệnh gọi tới 2Ghi chú. Đoạn mã trên nhằm mục đích là một ví dụ minh họa về cách quy trình khởi tạo hoạt động bên trong. Đó không phải là điều mà bạn thường làm trong mã thực Khi bạn có đối tượng mới, thì bạn có thể khởi tạo nó bằng cách gọi 2 với một bộ đối số thích hợp. Sau cuộc gọi này, đối tượng 6 của bạn được khởi tạo đúng cách, với tất cả các thuộc tính của nó được thiết lậpMột chi tiết tinh tế và quan trọng cần lưu ý về 3 là nó cũng có thể trả về một thể hiện của một lớp khác với lớp thực hiện chính phương thức đó. Khi điều đó xảy ra, Python không gọi 2 trong lớp hiện tại, bởi vì không có cách nào để biết rõ ràng cách khởi tạo một đối tượng của một lớp khácXem xét ví dụ sau, trong đó phương thức 3 của lớp 2 trả về một thể hiện của lớp 3
Bởi vì 4 trả về một thể hiện của một lớp khác, Python không chạy 5. Để xác nhận hành vi này, hãy lưu mã vào một tệp có tên là 6 rồi chạy mã sau trong phiên Python tương tác>>>
Cuộc gọi đến phương thức khởi tạo lớp 7 chạy 4, trả về một thể hiện của 3 thay vì 2. Đó là lý do tại sao 5 không bao giờ chạy. Lưu ý rằng 2 không có thuộc tính 3. Ngược lại, 2 có thuộc tính 5 với giá trị là 6Bây giờ bạn đã biết các bước mà Python thực hiện trong nội bộ để tạo các thể hiện của một lớp nhất định, bạn đã sẵn sàng tìm hiểu sâu hơn một chút về các đặc điểm khác của 2, 3 và các bước mà chúng chạyLoại bỏ các quảng cáoKhởi tạo đối tượng với >>> from point import Point >>> point = Point(21, 42) 1. Create a new instance of Point. 2. Initialize the new instance of Point. >>> point Point(x=21, y=42) 2Trong Python, phương thức 2 có lẽ là phương thức đặc biệt phổ biến nhất mà bạn từng ghi đè trong các lớp tùy chỉnh của mình. Hầu như tất cả các lớp của bạn sẽ cần triển khai tùy chỉnh 2. Ghi đè phương thức này sẽ cho phép bạn khởi tạo đúng các đối tượng của mìnhMục đích của bước khởi tạo này là để các đối tượng mới của bạn ở trạng thái hợp lệ để bạn có thể bắt đầu sử dụng chúng ngay lập tức trong mã của mình. Trong phần này, bạn sẽ học những điều cơ bản để viết các phương thức 2 của riêng mình và cách chúng có thể giúp bạn tùy chỉnh các lớp học của mìnhCung cấp Trình khởi tạo đối tượng tùy chỉnhViệc triển khai đơn giản nhất của 2 mà bạn có thể viết sẽ chỉ đảm nhiệm việc gán các đối số đầu vào cho các thuộc tính đối tượng phù hợp. Ví dụ: giả sử bạn đang viết một lớp 04 yêu cầu các thuộc tính 05 và 06. Trong trường hợp đó, bạn có thể làm một cái gì đó như thế này>>>
Như bạn đã học trước đây, 2 chạy bước thứ hai của quy trình khởi tạo đối tượng trong Python. Đối số đầu tiên của nó, 3, giữ thể hiện mới là kết quả của việc gọi 3. Phần còn lại của các đối số cho 2 thường được sử dụng để khởi tạo các thuộc tính thể hiện. Trong ví dụ trên, bạn đã khởi tạo các đối số 05 và 06 của hình chữ nhật bằng cách sử dụng các đối số 13 và 14 thành 2Điều quan trọng cần lưu ý là, không tính 3, các đối số của 2 chính là những đối số mà bạn đã chuyển trong lệnh gọi hàm tạo của lớp. Vì vậy, theo một cách nào đó, chữ ký 2 xác định chữ ký của hàm tạo lớpNgoài ra, hãy nhớ rằng 2 không được khác với 20, nếu không bạn sẽ nhận được một ngoại lệ>>>
Trong ví dụ này, phương thức 2 cố gắng trả về một số nguyên, kết quả là đưa ra một ngoại lệ 21 trong thời gian chạyThông báo lỗi trong ví dụ trên cho biết rằng 2 sẽ trả về 20. Tuy nhiên, bạn không cần trả về 20 một cách rõ ràng, bởi vì các phương thức và hàm không có câu lệnh 27 rõ ràng chỉ trả về 20 một cách ngầm định trong PythonVới cách triển khai 2 ở trên, bạn đảm bảo rằng 05 và 06 được khởi tạo ở trạng thái hợp lệ khi bạn gọi phương thức khởi tạo của lớp với các đối số thích hợp. Bằng cách đó, các hình chữ nhật của bạn sẽ sẵn sàng để sử dụng ngay sau khi quá trình xây dựng kết thúcTrong 2, bạn cũng có thể chạy bất kỳ phép biến đổi nào đối với các đối số đầu vào để khởi tạo đúng các thuộc tính thể hiện. Ví dụ: nếu người dùng của bạn sẽ sử dụng trực tiếp 04, thì bạn có thể muốn xác thực 13 và 14 được cung cấp và đảm bảo rằng chúng chính xác trước khi khởi tạo các thuộc tính tương ứng
Trong triển khai cập nhật này của 2, bạn đảm bảo rằng các đối số đầu vào 13 và 14 là số dương trước khi khởi tạo các thuộc tính 05 và 06 tương ứng. Nếu một trong hai xác thực không thành công, thì bạn sẽ nhận được một 41Ghi chú. Một kỹ thuật Pythonic hơn để giải quyết xác thực thuộc tính là biến thuộc tính thành thuộc tính. Để tìm hiểu thêm về các thuộc tính, hãy xem thuộc tính của Python(). Thêm thuộc tính được quản lý vào lớp học của bạn Bây giờ, giả sử rằng bạn đang sử dụng tính kế thừa để tạo phân cấp lớp tùy chỉnh và sử dụng lại một số chức năng trong mã của bạn. Nếu các lớp con của bạn cung cấp một phương thức 2, thì phương thức này phải gọi rõ ràng phương thức 2 của lớp cơ sở với các đối số thích hợp để đảm bảo khởi tạo đúng các thể hiện. Để làm điều này, bạn nên sử dụng hàm 1 tích hợp như trong ví dụ sau>>>
Dòng đầu tiên trong phương thức 2 của 46 gọi 47 với các đối số là 48 và 49. Cuộc gọi này đảm bảo việc khởi tạo của 50 và 51 trong lớp cha, 52. Kỹ thuật này cho phép bạn đến lớp cơ sở với các thuộc tính và chức năng mớiĐể kết thúc phần này, bạn nên biết rằng việc triển khai cơ sở của 2 đến từ lớp 0 tích hợp sẵn. Việc triển khai này được gọi tự động khi bạn không cung cấp phương thức 2 rõ ràng trong các lớp học của mìnhLoại bỏ các quảng cáoXây dựng Trình khởi tạo đối tượng linh hoạtBạn có thể làm cho bước khởi tạo đối tượng của mình trở nên linh hoạt và linh hoạt bằng cách điều chỉnh phương thức 2. Cuối cùng, một trong những kỹ thuật phổ biến nhất là sử dụng các đối số tùy chọn. Kỹ thuật này cho phép bạn viết các lớp trong đó hàm tạo chấp nhận các bộ đối số đầu vào khác nhau tại thời điểm khởi tạo. Việc sử dụng đối số nào tại một thời điểm nhất định sẽ phụ thuộc vào nhu cầu và ngữ cảnh cụ thể của bạnVí dụ nhanh, hãy xem lớp 57 sau đây 0Trong ví dụ này, 2 lấy một đối số thông thường có tên là 48. Nó cũng nhận một tên gọi là 60, mặc định là 61. Bởi vì 60 có một giá trị mặc định, bạn có thể xây dựng các đối tượng bằng cách dựa vào giá trị này hoặc bằng cách cung cấp giá trị của riêng bạnHành vi cuối cùng của lớp sẽ phụ thuộc vào giá trị của 60. Nếu đối số này là 61, thì bạn sẽ nhận được lời chào thân mật khi gọi cho 65. Nếu không, bạn sẽ nhận được một lời chào trang trọng hơnĐể dùng thử 57, hãy tiếp tục và lưu mã vào tệp 67. Sau đó, mở một phiên tương tác trong thư mục làm việc của bạn và chạy đoạn mã sau>>> 1Trong ví dụ đầu tiên, bạn tạo một đối tượng 68 bằng cách chuyển một giá trị cho đối số 48 và dựa vào giá trị mặc định của 60. Bạn nhận được một lời chào thân mật trên màn hình khi bạn gọi 65 trên đối tượng 68Trong ví dụ thứ hai, bạn sử dụng đối số 48 và đối số 60 để khởi tạo 57. Bởi vì 60 là 77, kết quả của việc gọi 65 là một lời chào trang trọngMặc dù đây là một ví dụ về đồ chơi, nhưng nó cho thấy các giá trị đối số mặc định là một tính năng Python mạnh mẽ như thế nào mà bạn có thể sử dụng để viết các trình khởi tạo linh hoạt cho các lớp của mình. Các bộ khởi tạo này sẽ cho phép bạn khởi tạo các lớp của mình bằng cách sử dụng các bộ đối số khác nhau tùy thuộc vào nhu cầu của bạn Đồng ý. Bây giờ bạn đã biết những kiến thức cơ bản về 2 và bước khởi tạo đối tượng, đã đến lúc chuyển hướng và bắt đầu tìm hiểu sâu hơn về 3 và bước tạo đối tượngTạo đối tượng với >>> from point import Point >>> point = Point(21, 42) 1. Create a new instance of Point. 2. Initialize the new instance of Point. >>> point Point(x=21, y=42) 3Khi viết các lớp Python, thông thường bạn không cần cung cấp triển khai phương thức đặc biệt 3 của riêng mình. Hầu hết thời gian, việc triển khai cơ sở từ lớp 0 tích hợp là đủ để xây dựng một đối tượng trống của lớp hiện tại của bạnTuy nhiên, có một vài trường hợp sử dụng thú vị cho phương pháp này. Ví dụ: bạn có thể sử dụng 3 để tạo các lớp con của các loại, chẳng hạn như , , 87 và 88Trong các phần sau, bạn sẽ học cách viết triển khai tùy chỉnh của 3 trong các lớp học của mình. Để làm điều này, bạn sẽ viết mã một số ví dụ để biết khi nào bạn có thể cần ghi đè phương thức nàyCung cấp Trình tạo đối tượng tùy chỉnhThông thường, bạn sẽ viết triển khai tùy chỉnh của 3 chỉ khi bạn cần kiểm soát việc tạo phiên bản mới ở mức thấp. Bây giờ, nếu bạn cần triển khai tùy chỉnh phương pháp này, thì bạn nên làm theo một số bước
Với ba bước ngắn gọn này, bạn sẽ có thể tùy chỉnh bước tạo phiên bản trong quy trình khởi tạo Python. Đây là một ví dụ về cách bạn có thể dịch các bước này sang mã Python 2Ví dụ này cung cấp một loại triển khai mẫu của 3. Như thường lệ, 3 lấy lớp hiện tại làm đối số thường được gọi là 2Lưu ý rằng bạn đang sử dụng 4 và 5 để làm cho phương thức linh hoạt hơn và dễ bảo trì hơn bằng cách chấp nhận bất kỳ số lượng đối số nào. Bạn phải luôn xác định 3 với 4 và 5, trừ khi bạn có lý do chính đáng để theo một mẫu khácTrong dòng đầu tiên của 3, bạn gọi phương thức 3 của lớp cha để tạo một thể hiện mới và cấp phát bộ nhớ cho nó. Để truy cập phương thức 3 của lớp cha, bạn sử dụng hàm 1. Chuỗi cuộc gọi này đưa bạn đến 04, đây là triển khai cơ bản của 3 cho tất cả các lớp PythonGhi chú. Lớp 0 tích hợp là lớp cơ sở mặc định của tất cả các lớp PythonBước tiếp theo là tùy chỉnh phiên bản mới tạo của bạn. Bạn có thể làm bất cứ điều gì bạn cần làm để tùy chỉnh phiên bản hiện có. Cuối cùng, ở bước thứ ba, bạn cần trả về phiên bản mới để tiếp tục quá trình khởi tạo với bước khởi tạo Điều quan trọng cần lưu ý là bản thân 04 chỉ chấp nhận một đối số duy nhất, lớp để khởi tạo. Nếu bạn gọi 04 với nhiều đối số hơn, thì bạn nhận được 21>>> 3Trong ví dụ này, bạn bàn giao 4 và 5 làm đối số bổ sung trong cuộc gọi tới 91. Cơ sở 04 chỉ chấp nhận lớp làm đối số, vì vậy bạn nhận được một 21 khi bạn khởi tạo lớpTuy nhiên, 04 vẫn chấp nhận và chuyển các đối số bổ sung cho 2 nếu lớp của bạn không ghi đè lên 3, như trong biến thể sau của 5>>> 4Trong quá trình triển khai 5 này, bạn không ghi đè lên 3. Việc tạo đối tượng sau đó được ủy quyền cho 04, hiện đang chấp nhận 22 và chuyển nó cho 23 để hoàn tất quá trình khởi tạo. Bây giờ bạn có thể tạo các thể hiện mới và được khởi tạo đầy đủ của 5, giống như 25 trong ví dụMát mẻ. Bây giờ bạn đã biết những kiến thức cơ bản để viết triển khai của riêng mình về 3, bạn đã sẵn sàng đi sâu vào một vài ví dụ thực tế có một số trường hợp sử dụng phổ biến nhất của phương pháp này trong lập trình PythonLoại bỏ các quảng cáoPhân lớp các loại tích hợp không thể thay đổiĐể bắt đầu, bạn sẽ bắt đầu với trường hợp sử dụng của 3 bao gồm phân lớp con một loại tích hợp sẵn không thể thay đổi. Ví dụ, giả sử bạn cần viết một lớp 28 dưới dạng một lớp con của loại 86 của Python. Lớp học của bạn sẽ có một thuộc tính bổ sung để lưu trữ đơn vị dùng để đo khoảng cáchĐây là cách tiếp cận đầu tiên cho vấn đề này, sử dụng phương pháp 2>>> 5Khi bạn phân lớp một kiểu dữ liệu tích hợp sẵn không thể thay đổi, bạn sẽ gặp lỗi. Một phần của vấn đề là giá trị được đặt trong quá trình tạo và đã quá muộn để thay đổi giá trị đó trong quá trình khởi tạo. Ngoài ra, 31 được gọi dưới mui xe và nó không xử lý các đối số bổ sung theo cách giống như 04. Đây là những gì làm tăng lỗi trong ví dụ của bạnĐể khắc phục sự cố này, bạn có thể khởi tạo đối tượng tại thời điểm tạo bằng 3 thay vì ghi đè 2. Đây là cách bạn có thể làm điều này trong thực tế>>> 6Trong ví dụ này, 3 chạy ba bước mà bạn đã học trong phần trước. Đầu tiên, phương thức tạo một thể hiện mới của lớp hiện tại, 2, bằng cách gọi 91. Lần này, cuộc gọi quay trở lại 31, tạo ra một phiên bản mới và khởi tạo nó bằng cách sử dụng _________22 làm đối số. Sau đó, phương thức tùy chỉnh thể hiện mới bằng cách thêm thuộc tính 40 vào nó. Cuối cùng, phiên bản mới được trả lạiGhi chú. Lớp 28 trong ví dụ trên không cung cấp cơ chế chuyển đổi đơn vị phù hợp. Điều này có nghĩa là một cái gì đó như 42 sẽ không cố gắng chuyển đổi đơn vị trước khi thêm các giá trị. Nếu bạn quan tâm đến việc chuyển đổi đơn vị, hãy xem dự án Pint trên PyPIĐó là nó. Bây giờ lớp 28 của bạn hoạt động như mong đợi, cho phép bạn sử dụng thuộc tính thể hiện để lưu trữ đơn vị mà bạn đang đo khoảng cách. Không giống như giá trị dấu phẩy động được lưu trữ trong một phiên bản nhất định của 28, thuộc tính 40 có thể thay đổi, vì vậy bạn có thể thay đổi giá trị của nó bất kỳ lúc nào bạn muốn. Cuối cùng, lưu ý cách gọi hàm cho thấy rằng lớp của bạn kế thừa các tính năng và phương thức từ 86Trả về các trường hợp của một lớp khácTrả lại một đối tượng của một lớp khác là một yêu cầu có thể làm tăng nhu cầu triển khai tùy chỉnh của 3. Tuy nhiên bạn nên cẩn thận vì trong trường hợp này Python bỏ qua hoàn toàn bước khởi tạo. Vì vậy, bạn sẽ có trách nhiệm đưa đối tượng mới tạo về trạng thái hợp lệ trước khi sử dụng nó trong mã của mìnhHãy xem ví dụ sau, trong đó lớp 49 sử dụng 3 để trả về các thể hiện của các lớp được chọn ngẫu nhiên 7Trong ví dụ này, 49 cung cấp phương thức 3 để tạo một thể hiện mới bằng cách chọn ngẫu nhiên một lớp từ danh sách các lớp hiện cóĐây là cách bạn có thể sử dụng lớp 49 này như một xưởng sản xuất đồ vật nuôi>>> 8Mỗi khi bạn khởi tạo 49, bạn sẽ nhận được một đối tượng ngẫu nhiên từ một lớp khác. Kết quả này là có thể bởi vì không có hạn chế đối với đối tượng mà 3 có thể trả về. Việc sử dụng 3 theo cách như vậy sẽ biến một lớp thành một nhà máy sản xuất các đối tượng linh hoạt và mạnh mẽ, không giới hạn ở các thể hiện của chính nóCuối cùng, hãy lưu ý rằng phương pháp 2 của 49 không bao giờ chạy. Đó là bởi vì 59 luôn trả về các đối tượng của một lớp khác chứ không phải của chính 49Chỉ cho phép một trường hợp duy nhất trong lớp học của bạnĐôi khi bạn cần triển khai một lớp chỉ cho phép tạo một thể hiện duy nhất. Loại lớp này thường được gọi là lớp đơn. Trong tình huống này, phương thức 3 rất hữu ích vì nó có thể giúp bạn hạn chế số lượng phiên bản mà một lớp nhất định có thể cóGhi chú. Hầu hết các nhà phát triển Python có kinh nghiệm sẽ lập luận rằng bạn không cần triển khai mẫu thiết kế đơn lẻ trong Python trừ khi bạn đã có một lớp làm việc và cần thêm chức năng của mẫu lên trên nó Thời gian còn lại, bạn có thể sử dụng hằng số cấp mô-đun để có cùng chức năng đơn lẻ mà không cần phải viết một lớp tương đối phức tạp Đây là một ví dụ về mã hóa lớp 62 với phương thức 3 cho phép tạo chỉ một phiên bản tại một thời điểm. Để làm điều này, 3 kiểm tra sự tồn tại của các phiên bản trước đó được lưu trong bộ đệm trên một thuộc tính lớp>>> 9Lớp 62 trong ví dụ này có tên là 66 mặc định là 20 và hoạt động như một bộ đệm. Phương thức 3 kiểm tra xem có tồn tại phiên bản trước đó hay không bằng cách kiểm tra điều kiện 69Ghi chú. Trong ví dụ trên, 62 không cung cấp triển khai của 2. Nếu bạn cần một lớp như thế này với phương thức 2, thì hãy nhớ rằng phương thức này sẽ chạy mỗi khi bạn gọi hàm tạo 73. Hành vi này có thể gây ra các lỗi và hiệu ứng khởi tạo kỳ lạNếu điều kiện này là đúng, thì khối mã 74 sẽ tạo một phiên bản mới của 62 và lưu trữ nó vào 76. Cuối cùng, phương thức trả về phiên bản mới hoặc phiên bản hiện có cho người gọiSau đó, bạn khởi tạo 62 hai lần để cố gắng xây dựng hai đối tượng khác nhau, 78 và 79. Nếu bạn so sánh danh tính của các đối tượng này với toán tử 80, thì bạn sẽ lưu ý rằng cả hai đối tượng đều là cùng một đối tượng. Các tên 78 và 79 chỉ giữ các tham chiếu đến cùng một đối tượng 62Loại bỏ các quảng cáoMô phỏng một phần >>> from point import Point >>> point = Point(21, 42) 1. Create a new instance of Point. 2. Initialize the new instance of Point. >>> point Point(x=21, y=42) 84Như một ví dụ cuối cùng về cách tận dụng 3 trong mã của bạn, bạn có thể nâng cao kỹ năng Python của mình và viết một hàm xuất xưởng mô phỏng một phần 86. Hàm 87 cho phép bạn tạo các lớp con của 87 với tính năng bổ sung là có các trường được đặt tên để truy cập các mục trong bộ dữ liệuĐoạn mã dưới đây triển khai hàm 89 mô phỏng một phần chức năng này bằng cách ghi đè phương thức 3 của một lớp lồng nhau có tên là 91 0Đây là cách chức năng xuất xưởng này hoạt động theo từng dòng
Để dùng thử 89 của bạn, hãy kích hoạt một phiên tương tác trong thư mục chứa tệp 17 và chạy đoạn mã sau>>> 1Trong đoạn mã này, bạn tạo một lớp 6 mới bằng cách gọi 89. Đối số đầu tiên trong cuộc gọi này đại diện cho tên mà đối tượng lớp kết quả sẽ sử dụng. Đối số thứ hai và thứ ba là các trường được đặt tên có sẵn trong lớp kết quảSau đó, bạn tạo một đối tượng 6 bằng cách gọi hàm tạo của lớp với các giá trị thích hợp cho các trường 7 và 8. Để truy cập giá trị của từng trường được đặt tên, bạn có thể sử dụng ký hiệu dấu chấm. Bạn cũng có thể sử dụng các chỉ mục để truy xuất các giá trị vì lớp của bạn là một lớp con của bộVì bộ dữ liệu là kiểu dữ liệu bất biến trong Python, nên bạn không thể gán giá trị mới cho tọa độ của điểm tại chỗ. Nếu bạn cố gắng làm điều đó, thì bạn sẽ nhận được một 23Cuối cùng, gọi 46 với thể hiện 0 của bạn làm đối số cho thấy rằng đối tượng của bạn kế thừa tất cả các thuộc tính và phương thức mà các bộ dữ liệu thông thường có trong PythonPhần kết luậnBây giờ bạn đã biết cách các hàm tạo của lớp Python cho phép bạn khởi tạo các lớp, vì vậy bạn có thể tạo các đối tượng cụ thể và sẵn sàng sử dụng trong mã của mình. Trong Python, các hàm tạo của lớp kích hoạt bên trong quá trình khởi tạo hoặc xây dựng, trải qua quá trình tạo cá thể và khởi tạo cá thể. Các bước này được thúc đẩy bởi các phương pháp đặc biệt 3 và 2Bằng cách tìm hiểu về các hàm tạo lớp của Python, quy trình khởi tạo và các phương thức 3 và 2, giờ đây bạn có thể quản lý cách các lớp tùy chỉnh của mình xây dựng các thể hiện mớiTrong hướng dẫn này, bạn đã học
Bây giờ bạn đã sẵn sàng tận dụng kiến thức này để tinh chỉnh các hàm tạo lớp của mình và kiểm soát hoàn toàn việc tạo và khởi tạo phiên bản trong cuộc phiêu lưu lập trình hướng đối tượng của bạn với Python Tiền thưởng miễn phí. Nhấp vào đây để có quyền truy cập vào Bảng cheat Python OOP miễn phí chỉ cho bạn các hướng dẫn, video và sách hay nhất để tìm hiểu thêm về Lập trình hướng đối tượng với Python Đánh dấu là đã hoàn thành Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Sử dụng Trình tạo lớp Python 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về Leodanis Pozo Ramos Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác » Tìm hiểu thêm về LeodanisMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Aldren Bartosz Geir Arne kate Sadie Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Chuyên gia Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi Đối số đối tượng trong Python là gì?Đối tượng là thể hiện của lớp trong python có trường và phương thức i. e. , giá trị và hàm liên quan . Python cho phép các lập trình viên của nó truyền đối tượng vào phương thức. Và cũng trả về các đối tượng từ một phương thức. Đây là một chương trình để minh họa điều này, Chương trình truyền các đối tượng làm đối số và trả về các đối tượng từ hàm.
Đối tượng trong lớp có nghĩa là Python là gì?Đối tượng là bất cứ thứ gì bạn muốn thao tác hoặc thay đổi trong khi làm việc với mã . Mỗi khi một đối tượng lớp được khởi tạo, đó là khi chúng ta khai báo một biến, một đối tượng mới sẽ được khởi tạo từ đầu.
Đối tượng () có nghĩa là gì trong Python?Hàm đối tượng Python()
. the base for all classes, it holds the built-in properties and methods which are default for all classes.
Các đối tượng trong các lớp học là gì?Một đối tượng là một thành viên hoặc một "thực thể" của một lớp . Một đối tượng có trạng thái trong đó tất cả các thuộc tính của nó có các giá trị mà bạn xác định rõ ràng hoặc được xác định theo cài đặt mặc định. |