Hướng dẫn is oop important in python? - oop có quan trọng trong python không?
Xác định một lớp, là một loại bản thiết kế cho một đối tượng This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Intro to Object-Oriented Programming (OOP) in Python Khởi tạo một đối tượng từ một lớp (OOP) is a method of structuring a program by bundling related properties and behaviors into individual objects. In this tutorial, you’ll learn the basics of object-oriented programming in Python. Sử dụng các thuộc tính và phương thức để xác định các thuộc tính và hành vi của một đối tượng Một đối tượng chứa dữ liệu, như các vật liệu thô hoặc được xử lý trước ở mỗi bước trên một dây chuyền lắp ráp và hành vi, như hành động mỗi thành phần dây chuyền lắp ráp thực hiện. Trong hướng dẫn này, bạn sẽ học cách:
Lập trình hướng đối tượng trong Python là gì?Lập trình hướng đối tượng là một mô hình lập trình cung cấp một phương tiện cấu trúc các chương trình để các thuộc tính và hành vi được gói vào các đối tượng riêng lẻ.objects. Chẳng hạn, một đối tượng có thể đại diện cho một người có tài sản như tên, tuổi tác, và địa chỉ và hành vi như đi bộ, nói chuyện, thở và chạy. Hoặc nó có thể đại diện cho một email với các thuộc tính như danh sách người nhận, chủ thể, và cơ thể và các hành vi như thêm tệp đính kèm và gửi.properties like a name, age, and address and behaviors such as walking, talking, breathing, and running. Or it could represent an email with properties like a recipient list, subject, and body and behaviors like adding attachments and sending. Nói cách khác, lập trình hướng đối tượng là một cách tiếp cận để mô hình hóa cụ thể, những thứ thực tế, như xe hơi, cũng như quan hệ giữa mọi thứ, như công ty và nhân viên, sinh viên và giáo viên, v.v. OOP mô hình các thực thể trong thế giới thực như các đối tượng phần mềm có một số dữ liệu liên quan đến chúng và có thể thực hiện các chức năng nhất định. Một mô hình lập trình phổ biến khác là lập trình thủ tục, cấu trúc một chương trình giống như một công thức trong đó nó cung cấp một tập hợp các bước, dưới dạng các chức năng và khối mã, lưu lượng tuần tự để hoàn thành một nhiệm vụ.procedural programming, which structures a program like a recipe in that it provides a set of steps, in the form of functions and code blocks, that flow sequentially in order to complete a task. Điều quan trọng là các đối tượng là trung tâm của lập trình hướng đối tượng trong Python, không chỉ đại diện cho dữ liệu, như trong lập trình thủ tục, mà còn trong cấu trúc tổng thể của chương trình. Xác định một lớp học trong PythonCác cấu trúc dữ liệu nguyên thủy, giống như các số, chuỗi và danh sách được thiết kế để thể hiện các mẩu thông tin đơn giản, chẳng hạn như chi phí của một quả táo, tên của một bài thơ hoặc màu sắc yêu thích của bạn, tương ứng. Điều gì sẽ xảy ra nếu bạn muốn đại diện cho một cái gì đó phức tạp hơn? Ví dụ, hãy để nói rằng bạn muốn theo dõi nhân viên trong một tổ chức. Bạn cần lưu trữ một số thông tin cơ bản về từng nhân viên, chẳng hạn như tên, tuổi, vị trí và năm họ bắt đầu làm việc. Một cách để làm điều này là đại diện cho mỗi nhân viên như một danh sách:
Có một số vấn đề với phương pháp này. Đầu tiên, nó có thể làm cho các tệp mã lớn hơn khó quản lý hơn. Nếu bạn tham khảo 5 Một vài dòng cách xa danh sách 6 được khai báo, bạn sẽ nhớ rằng phần tử có chỉ mục 7 là tên của nhân viên?Thứ hai, nó có thể giới thiệu lỗi nếu không phải mọi nhân viên đều có cùng số lượng các yếu tố trong danh sách. Trong danh sách 8 ở trên, độ tuổi bị thiếu, vì vậy 9 sẽ trở lại 0 thay vì tuổi của Tiến sĩ McCoy.Một cách tuyệt vời để làm cho loại mã này dễ quản lý hơn và có thể duy trì hơn là sử dụng các lớp.classes. Các lớp học vsCác lớp được sử dụng để tạo cấu trúc dữ liệu do người dùng xác định. Các lớp xác định các chức năng được gọi là các phương thức, xác định các hành vi và hành động mà một đối tượng được tạo từ lớp có thể thực hiện với dữ liệu của nó.methods, which identify the behaviors and actions that an object created from the class can perform with its data. Trong hướng dẫn này, bạn sẽ tạo ra một lớp 1 lưu trữ một số thông tin về các đặc điểm và hành vi mà một con chó cá nhân có thể có.Một lớp học là một bản thiết kế cho cách xác định một cái gì đó. Nó không thực sự chứa bất kỳ dữ liệu nào. Lớp 1 quy định rằng một tên và một độ tuổi là cần thiết để xác định một con chó, nhưng nó không chứa tên hoặc tuổi của bất kỳ con chó cụ thể nào.Mặc dù lớp là bản thiết kế, một thể hiện là một đối tượng được xây dựng từ một lớp và chứa dữ liệu thực. Một ví dụ của lớp 1 không phải là một kế hoạch chi tiết nữa. Nó có một con chó thực sự với một cái tên, giống như Miles, người mà bốn tuổi.instance is an object that is built from a class and contains real data. An instance of the 1 class is not a blueprint anymore. It’s an actual dog with a
name, like Miles, who’s four years old.Nói cách khác, một lớp học giống như một hình thức hoặc bảng câu hỏi. Một ví dụ giống như một hình thức đã được điền thông tin. Giống như nhiều người có thể điền vào cùng một hình thức với thông tin độc đáo của riêng họ, nhiều trường hợp có thể được tạo từ một lớp duy nhất. Cách xác định một lớp họcTất cả các định nghĩa lớp bắt đầu với từ khóa 4, được theo sau là tên của lớp và một dấu hai chấm. Bất kỳ mã nào được thụt vào bên dưới định nghĩa lớp được coi là một phần của cơ thể lớp.Ở đây, một ví dụ về một lớp 1:Phần thân của lớp 1 bao gồm một câu lệnh: Từ khóa 7. 7 thường được sử dụng làm người giữ chỗ cho biết mã cuối cùng sẽ đi đâu. Nó cho phép bạn chạy mã này mà không cần phải ném lỗi.Lớp 1 hiện đang rất thú vị, vì vậy, hãy để Lừa lên một chút bằng cách xác định một số thuộc tính mà tất cả các đối tượng 1 nên có. Có một số thuộc tính mà chúng ta có thể chọn, bao gồm tên, tuổi, màu áo và giống. Để giữ cho mọi thứ đơn giản, chúng tôi sẽ chỉ sử dụng tên và tuổi.Các thuộc tính mà tất cả các đối tượng 1 phải được xác định trong một phương thức gọi là 2. Mỗi khi một đối tượng 1 mới được tạo, 2 đặt trạng thái ban đầu của đối tượng bằng cách gán các giá trị của các thuộc tính của đối tượng. Nghĩa là, 2 khởi tạo từng thể hiện mới của lớp.state of the object by assigning the values of the object’s properties. That is, 2 initializes each new instance of the class.Bạn có thể cung cấp 2 bất kỳ số lượng tham số nào, nhưng tham số đầu tiên sẽ luôn là một biến được gọi là 7. Khi một thể hiện lớp mới được tạo, phiên bản được tự động chuyển đến tham số 7 trong 2 để các thuộc tính mới có thể được xác định trên đối tượng.attributes can be defined on the object.Hãy để cập nhật lớp 1 với phương thức 2 tạo ra các thuộc tính 2 và 3:
Lưu ý rằng chữ ký của phương thức 2 được thụt vào bốn không gian. Cơ thể của phương pháp được thụt lề bởi tám không gian. Sự thụt này là cực kỳ quan trọng. Nó nói với Python rằng phương pháp 2 thuộc về lớp 1.Trong phần thân của 2, có hai tuyên bố sử dụng biến 7:
Các thuộc tính được tạo trong 2 được gọi là thuộc tính thể hiện. Một giá trị thuộc tính thể hiện là cụ thể cho một trường hợp cụ thể của lớp. Tất cả các đối tượng 1 đều có tên và tuổi, nhưng các giá trị cho các thuộc tính 0 và 3 sẽ thay đổi tùy thuộc vào thể hiện 1.instance attributes. An instance attribute’s value is specific to a particular
instance of the class. All 1 objects have a name and an age, but the values for the 0 and 3 attributes will vary depending on the 1 instance.Mặt khác, các thuộc tính lớp là các thuộc tính có cùng giá trị cho tất cả các trường hợp lớp. Bạn có thể xác định thuộc tính lớp bằng cách gán một giá trị cho một tên biến bên ngoài 2.class attributes are attributes that have the same value for all class instances. You can define a class attribute by assigning a value to a variable name outside of 2.Ví dụ: lớp 1 sau đây có thuộc tính lớp có tên 2 với giá trị 3:
Các thuộc tính lớp được xác định trực tiếp bên dưới dòng đầu tiên của tên lớp và được thụt vào bởi bốn không gian. Chúng phải luôn được gán một giá trị ban đầu. Khi một thể hiện của lớp được tạo, các thuộc tính lớp sẽ tự động được tạo và gán cho các giá trị ban đầu của chúng. Sử dụng các thuộc tính lớp để xác định các thuộc tính nên có cùng giá trị cho mọi thể hiện lớp. Sử dụng các thuộc tính thể hiện cho các thuộc tính thay đổi từ trường hợp này sang trường hợp khác. Bây giờ chúng tôi có một lớp 1, hãy để tạo ra một số con chó!Khởi tạo một đối tượng trong PythonMở cửa sổ tương tác Idle Idle và nhập như sau: >>>
Điều này tạo ra một lớp 1 mới không có thuộc tính hoặc phương thức.Tạo một đối tượng mới từ một lớp được gọi là khởi tạo một đối tượng. Bạn có thể khởi tạo một đối tượng 1 mới bằng cách nhập tên của lớp, theo sau bằng cách mở và đóng dấu ngoặc đơn:instantiating an object. You can instantiate a new 1 object by typing the name of the class, followed by opening and closing parentheses:>>>
Điều này tạo ra một lớp 1 mới không có thuộc tính hoặc phương thức.memory address that indicates where the 1 object is stored in your computer’s memory. Note that the address you see on your screen will be different.Tạo một đối tượng mới từ một lớp được gọi là khởi tạo một đối tượng. Bạn có thể khởi tạo một đối tượng 1 mới bằng cách nhập tên của lớp, theo sau bằng cách mở và đóng dấu ngoặc đơn:>>>
Điều này tạo ra một lớp 1 mới không có thuộc tính hoặc phương thức.Tạo một đối tượng mới từ một lớp được gọi là khởi tạo một đối tượng. Bạn có thể khởi tạo một đối tượng 1 mới bằng cách nhập tên của lớp, theo sau bằng cách mở và đóng dấu ngoặc đơn:>>>
Điều này tạo ra một lớp 1 mới không có thuộc tính hoặc phương thức.Tạo một đối tượng mới từ một lớp được gọi là khởi tạo một đối tượng. Bạn có thể khởi tạo một đối tượng >>> Dog() <__main__.Dog object at 0x106702d30> 1 mới bằng cách nhập tên của lớp, theo sau bằng cách mở và đóng dấu ngoặc đơn:Bây giờ bạn có một đối tượng 1 mới tại 8. Chuỗi các chữ cái và số trông hài hước này là một địa chỉ bộ nhớ cho biết nơi đối tượng 1 được lưu trữ trong bộ nhớ máy tính của bạn. Lưu ý rằng địa chỉ bạn thấy trên màn hình của bạn sẽ khác.>>>
Điều này tạo ra một lớp 1 mới không có thuộc tính hoặc phương thức.>>>
Điều này tạo ra một lớp 1 mới không có thuộc tính hoặc phương thức.>>> 0Điều này tạo ra một lớp 1 mới không có thuộc tính hoặc phương thức.Tạo một đối tượng mới từ một lớp được gọi là khởi tạo một đối tượng. Bạn có thể khởi tạo một đối tượng 1 mới bằng cách nhập tên của lớp, theo sau bằng cách mở và đóng dấu ngoặc đơn:Bây giờ bạn có một đối tượng 1 mới tại 8. Chuỗi các chữ cái và số trông hài hước này là một địa chỉ bộ nhớ cho biết nơi đối tượng 1 được lưu trữ trong bộ nhớ máy tính của bạn. Lưu ý rằng địa chỉ bạn thấy trên màn hình của bạn sẽ khác.Sau khi bạn tạo các phiên bản 1, bạn có thể truy cập các thuộc tính thể hiện của chúng bằng cách sử dụng ký hiệu DOT:dot notation:>>> 1Bạn có thể truy cập các thuộc tính lớp theo cùng một cách: >>> 2Bạn có thể truy cập các thuộc tính lớp theo cùng một cách: Một trong những lợi thế lớn nhất của việc sử dụng các lớp để tổ chức dữ liệu là các trường hợp được đảm bảo có các thuộc tính mà bạn mong đợi. Tất cả các trường hợp 1 đều có các thuộc tính 14, 2 và 3, vì vậy bạn có thể sử dụng các thuộc tính đó với sự tự tin khi biết rằng chúng sẽ luôn trả về một giá trị.>>> 3Bạn có thể truy cập các thuộc tính lớp theo cùng một cách: Một trong những lợi thế lớn nhất của việc sử dụng các lớp để tổ chức dữ liệu là các trường hợp được đảm bảo có các thuộc tính mà bạn mong đợi. Tất cả các trường hợp 1 đều có các thuộc tính 14, 2 và 3, vì vậy bạn có thể sử dụng các thuộc tính đó với sự tự tin khi biết rằng chúng sẽ luôn trả về một giá trị.Mặc dù các thuộc tính được đảm bảo tồn tại, giá trị của chúng có thể được thay đổi một cách linh hoạt:Trong ví dụ này, bạn thay đổi thuộc tính 2, an instance method’s first parameter is always 7.Điểm quan trọng ở đây là các đối tượng tùy chỉnh có thể thay đổi theo mặc định. Một đối tượng có thể thay đổi nếu nó có thể được thay đổi một cách linh hoạt. Ví dụ, danh sách và từ điển là có thể thay đổi, nhưng chuỗi và bộ dữ liệu là bất biến. 4Phương pháp thể hiện
Lớp 1 này có hai phương thức thể hiện:F5 to run the program. Then open the interactive window and type the following to see your instance methods in action:>>> 5 46 Trả về một chuỗi hiển thị tên và tuổi của con chó.
47 có một tham số gọi là 48 và trả về một chuỗi chứa tên chó và âm thanh mà con chó tạo ra.>>> 6Lưu lớp 1 đã sửa đổi vào một tệp có tên 50 và nhấn F5 để chạy chương trình. Sau đó, mở cửa sổ tương tác và nhập phần sau để xem các phương thức thể hiện của bạn trong hành động:>>> 7Trong lớp 1 trên, 46 trả về một chuỗi chứa thông tin về phiên bản 1 40. Khi viết các lớp học của riêng bạn, bạn có một ý tưởng tốt để có một phương thức trả về một chuỗi chứa thông tin hữu ích về một thể hiện của lớp. Tuy nhiên, 46 không phải là cách làm điều này.Khi bạn tạo đối tượng 56, bạn có thể sử dụng 57 để hiển thị một chuỗi trông giống như danh sách: 8Hãy để xem những gì xảy ra khi bạn 57 đối tượng 40:F5. Now, when you 60, you get a much friendlier output:>>> 9Khi bạn 60, bạn sẽ nhận được một tin nhắn trông khó hiểu nói với bạn rằng 40 là đối tượng 1 tại địa chỉ bộ nhớ 63. Thông điệp này rất hữu ích. Bạn có thể thay đổi những gì được in bằng cách xác định một phương thức thể hiện đặc biệt gọi là 64.dunder methods because they begin and end with double underscores. There are many dunder methods that you can use to customize classes in Python. Although too advanced a topic for a beginning Python book, understanding dunder methods is an important part of mastering object-oriented programming in Python.Trong cửa sổ Trình chỉnh sửa, hãy thay đổi tên của phương thức 1 Lớp 46 thành 64:Lưu tệp và nhấn F5. Bây giờ, khi bạn kirk = ["James Kirk", 34, "Captain", 2265] spock = ["Spock", 35, "Science Officer", 2254] mccoy = ["Leonard McCoy", "Chief Medical Officer", 2266] 60, bạn sẽ nhận được đầu ra thân thiện hơn nhiều:Các phương pháp như 2 và 64 được gọi là phương pháp Dunder vì chúng bắt đầu và kết thúc với các dấu gạch dưới kép. Có nhiều phương pháp Dunder mà bạn có thể sử dụng để tùy chỉnh các lớp trong Python. Mặc dù quá nâng cao một chủ đề cho một cuốn sách Python bắt đầu, hiểu các phương pháp Dunder là một phần quan trọng trong việc làm chủ lập trình hướng đối tượng trong Python.Trong phần tiếp theo, bạn sẽ thấy cách đưa kiến thức của mình tiến thêm một bước và tạo các lớp từ các lớp khác.
Tạo một lớp 71 với hai thuộc tính thể hiện: 0 72, nơi lưu trữ tên của màu xe hơi như một chuỗi 73, lưu trữ số dặm trên xe như một số nguyên 1Sau đó, khởi tạo hai đối tượng 71 Một chiếc xe màu xanh với 20.000 dặm và một chiếc xe màu đỏ với 30.000 dặm và in ra màu sắc và số dặm của chúng. Đầu ra của bạn sẽ trông như thế này:Bạn có thể mở rộng khối bên dưới để xem giải pháp: 2Đầu tiên, hãy tạo một lớp 71 với các thuộc tính phiên bản 72 và 73:Các tham số 78 và 79 của 2 được gán cho 81 và 82, tạo ra hai thuộc tính thể hiện. 3Bây giờ bạn có thể tạo hai phiên bản 71:Đầu ra cuối cùng trông như thế này: 0Khi bạn đã sẵn sàng, bạn có thể chuyển sang phần tiếp theo. Kế thừa từ các lớp khác trong PythonKế thừa là quá trình mà một lớp đảm nhận các thuộc tính và phương thức của một lớp khác. Các lớp mới được thành lập được gọi là các lớp con và các lớp mà các lớp con được bắt nguồn từ các lớp cha.child classes, and the classes that child classes are derived from are called parent classes. Các lớp con có thể ghi đè hoặc mở rộng các thuộc tính và phương thức của các lớp cha. Nói cách khác, các lớp con kế thừa tất cả các thuộc tính và phương thức của cha mẹ nhưng cũng có thể chỉ định các thuộc tính và phương thức duy nhất cho chính chúng. Mặc dù sự tương tự là hoàn hảo, bạn có thể nghĩ về sự kế thừa đối tượng giống như di truyền di truyền. Bạn có thể đã thừa hưởng màu tóc của bạn từ mẹ của bạn. Nó là một thuộc tính mà bạn được sinh ra. Hãy để nói rằng bạn quyết định tô màu cho tóc màu tím. Giả sử mẹ của bạn không có mái tóc màu tím, bạn chỉ cần ghi đè thuộc tính màu tóc mà bạn được thừa hưởng từ mẹ.overridden the hair color attribute that you inherited from your mom. Bạn cũng thừa hưởng, theo một nghĩa nào đó, ngôn ngữ của bạn từ cha mẹ của bạn. Nếu bố mẹ bạn nói tiếng Anh, thì bạn cũng sẽ nói tiếng Anh. Bây giờ hãy tưởng tượng bạn quyết định học một ngôn ngữ thứ hai, như tiếng Đức. Trong trường hợp này, bạn đã mở rộng các thuộc tính của mình vì bạn đã thêm một thuộc tính mà cha mẹ bạn không có.extended your attributes because you’ve added an attribute that your parents don’t have. Ví dụ về công viên chóGiả vờ một lúc bạn ở một công viên chó. Có rất nhiều con chó của các giống chó khác nhau tại công viên, tất cả đều tham gia vào các hành vi chó khác nhau. Giả sử bây giờ bạn muốn mô hình hóa công viên chó với các lớp Python. Lớp 1 mà bạn đã viết trong phần trước có thể phân biệt chó bằng tên và tuổi nhưng không phải bằng giống.Bạn có thể sửa đổi lớp 1 trong cửa sổ Trình chỉnh sửa bằng cách thêm thuộc tính 00: 5Các phương pháp thể hiện được xác định trước đó được bỏ qua ở đây vì chúng không quan trọng cho cuộc thảo luận này. Nhấn F5 để lưu tệp. Bây giờ bạn có thể mô hình hóa công viên chó bằng cách khởi tạo một loạt các con chó khác nhau trong cửa sổ tương tác:F5 to save the file. Now you can model the dog park by instantiating a bunch of different dogs in the interactive window: >>> 6Mỗi giống chó có những hành vi hơi khác nhau. Ví dụ, những chú chó bulông có một vỏ cây thấp nghe giống như WOOF, nhưng Dachshunds có một vỏ cây cao hơn nghe có vẻ giống Yap hơn. Chỉ sử dụng lớp 1, bạn phải cung cấp một chuỗi cho đối số 48 của 47 mỗi khi bạn gọi nó theo phiên bản 1:>>> 7Mỗi giống chó có những hành vi hơi khác nhau. Ví dụ, những chú chó bulông có một vỏ cây thấp nghe giống như WOOF, nhưng Dachshunds có một vỏ cây cao hơn nghe có vẻ giống Yap hơn. Chỉ sử dụng lớp 1, bạn phải cung cấp một chuỗi cho đối số 48 của 47 mỗi khi bạn gọi nó theo phiên bản 1:Chuyển một chuỗi cho mỗi cuộc gọi đến kirk = ["James Kirk", 34, "Captain", 2265] spock = ["Spock", 35, "Science Officer", 2254] mccoy = ["Leonard McCoy", "Chief Medical Officer", 2266] 47 là lặp đi lặp lại và bất tiện. Hơn nữa, chuỗi đại diện cho âm thanh mà mỗi trường hợp >>> Dog() <__main__.Dog object at 0x106702d30> 1 tạo nên được xác định bằng thuộc tính class Dog: def __init__(self, name, age): self.name = name self.age = age 00 của nó, nhưng ở đây bạn phải chuyển đúng chuỗi chính xác cho kirk = ["James Kirk", 34, "Captain", 2265] spock = ["Spock", 35, "Science Officer", 2254] mccoy = ["Leonard McCoy", "Chief Medical Officer", 2266] 47 mỗi khi nó được gọi.Bạn có thể đơn giản hóa trải nghiệm làm việc với lớp 1 bằng cách tạo ra một lớp con cho mỗi giống chó. Điều này cho phép bạn mở rộng chức năng mà mỗi lớp con được kế thừa, bao gồm chỉ định một đối số mặc định cho 47.Các lớp phụ huynh so với các lớp con 8Hãy để tạo ra một lớp trẻ em cho mỗi trong ba giống được đề cập ở trên: Jack Russell Terrier, Dachshund và Bulldog. 9Để tham khảo, ở đây, định nghĩa đầy đủ của lớp 1:F5 to save and run the file. With the child classes defined, you can now instantiate some dogs of specific breeds in the interactive
window:>>> 0Mỗi giống chó có những hành vi hơi khác nhau. Ví dụ, những chú chó bulông có một vỏ cây thấp nghe giống như WOOF, nhưng Dachshunds có một vỏ cây cao hơn nghe có vẻ giống Yap hơn. >>> 1Mỗi giống chó có những hành vi hơi khác nhau. Ví dụ, những chú chó bulông có một vỏ cây thấp nghe giống như WOOF, nhưng Dachshunds có một vỏ cây cao hơn nghe có vẻ giống Yap hơn. >>> 2Mỗi giống chó có những hành vi hơi khác nhau. Ví dụ, những chú chó bulông có một vỏ cây thấp nghe giống như WOOF, nhưng Dachshunds có một vỏ cây cao hơn nghe có vẻ giống Yap hơn. >>> 3Mỗi giống chó có những hành vi hơi khác nhau. Ví dụ, những chú chó bulông có một vỏ cây thấp nghe giống như WOOF, nhưng Dachshunds có một vỏ cây cao hơn nghe có vẻ giống Yap hơn. Chỉ sử dụng lớp 1, bạn phải cung cấp một chuỗi cho đối số 48 của 47 mỗi khi bạn gọi nó theo phiên bản 1:>>> 4Mỗi giống chó có những hành vi hơi khác nhau. Ví dụ, những chú chó bulông có một vỏ cây thấp nghe giống như WOOF, nhưng Dachshunds có một vỏ cây cao hơn nghe có vẻ giống Yap hơn. Chỉ sử dụng lớp 1, bạn phải cung cấp một chuỗi cho đối số 48 của 47 mỗi khi bạn gọi nó theo phiên bản 1:Chuyển một chuỗi cho mỗi cuộc gọi đến kirk = ["James Kirk", 34, "Captain", 2265] spock = ["Spock", 35, "Science Officer", 2254] mccoy = ["Leonard McCoy", "Chief Medical Officer", 2266] 47 là lặp đi lặp lại và bất tiện. Hơn nữa, chuỗi đại diện cho âm thanh mà mỗi trường hợp >>> Dog() <__main__.Dog object at 0x106702d30> 1 tạo nên được xác định bằng thuộc tính class Dog: def __init__(self, name, age): self.name = name self.age = age 00 của nó, nhưng ở đây bạn phải chuyển đúng chuỗi chính xác cho kirk = ["James Kirk", 34, "Captain", 2265] spock = ["Spock", 35, "Science Officer", 2254] mccoy = ["Leonard McCoy", "Chief Medical Officer", 2266] 47 mỗi khi nó được gọi.Vì các giống chó khác nhau có vỏ hơi khác nhau, bạn muốn cung cấp giá trị mặc định cho đối số 48 về các phương pháp 47 tương ứng của chúng. Để làm điều này, bạn cần ghi đè 47 trong định nghĩa lớp cho mỗi giống.Để ghi đè một phương thức được xác định trên lớp cha, bạn xác định một phương thức có cùng tên trên lớp con. Ở đây, những gì trông giống như lớp 35: 5Bây giờ 47 được xác định trên lớp 35 với đối số mặc định cho 48 được đặt thành 39.Cập nhật 50 với lớp 35 mới và nhấn F5 để lưu và chạy tệp. Bây giờ bạn có thể gọi 47 theo ví dụ 35 mà không chuyển đối số cho 48:F5 to save and run the file. You can now call 47 on a 35 instance without passing an argument to 48:>>> 6Đôi khi những con chó tạo ra những tiếng sủa khác nhau, vì vậy nếu Miles tức giận và gầm gừ, bạn vẫn có thể gọi 47 với một âm thanh khác:>>> 7Đôi khi những con chó tạo ra những tiếng sủa khác nhau, vì vậy nếu Miles tức giận và gầm gừ, bạn vẫn có thể gọi 47 với một âm thanh khác:Một điều cần lưu ý về sự kế thừa của lớp là các thay đổi đối với lớp cha mẹ tự động tuyên truyền đến các lớp con. Điều này xảy ra miễn là thuộc tính hoặc phương thức được thay đổi không được ghi đè trong lớp con. 8Ví dụ: trong cửa sổ Trình chỉnh sửa, thay đổi chuỗi được trả về bởi 47 trong lớp 1:F5. Now, when you create a new 29 instance named 26, 50 returns the new string:>>> 9Đôi khi những con chó tạo ra những tiếng sủa khác nhau, vì vậy nếu Miles tức giận và gầm gừ, bạn vẫn có thể gọi 47 với một âm thanh khác:>>> Đôi khi những con chó tạo ra những tiếng sủa khác nhau, vì vậy nếu Miles tức giận và gầm gừ, bạn vẫn có thể gọi 47 với một âm thanh khác:Một điều cần lưu ý về sự kế thừa của lớp là các thay đổi đối với lớp cha mẹ tự động tuyên truyền đến các lớp con. Điều này xảy ra miễn là thuộc tính hoặc phương thức được thay đổi không được ghi đè trong lớp con. Ví dụ: trong cửa sổ Trình chỉnh sửa, thay đổi chuỗi được trả về bởi 47 trong lớp 1:Lưu tệp và nhấn F5. Bây giờ, khi bạn tạo một thể hiện 29 mới có tên 26, 50 trả về chuỗi mới: 1Tuy nhiên, việc gọi 47 trên một ví dụ 35 won đã hiển thị phong cách đầu ra mới: 0F5 so you can test it in the interactive
window:>>> 2Đôi khi những con chó tạo ra những tiếng sủa khác nhau, vì vậy nếu Miles tức giận và gầm gừ, bạn vẫn có thể gọi 47 với một âm thanh khác:Một điều cần lưu ý về sự kế thừa của lớp là các thay đổi đối với lớp cha mẹ tự động tuyên truyền đến các lớp con. Điều này xảy ra miễn là thuộc tính hoặc phương thức được thay đổi không được ghi đè trong lớp con.Ví dụ: trong cửa sổ Trình chỉnh sửa, thay đổi chuỗi được trả về bởi 47 trong lớp 1:Lưu tệp và nhấn F5. Bây giờ, khi bạn tạo một thể hiện 29 mới có tên 26, 50 trả về chuỗi mới: 8Tuy nhiên, việc gọi 47 trên một ví dụ 35 won đã hiển thị phong cách đầu ra mới: 0 4Đôi khi nó có ý nghĩa để ghi đè hoàn toàn một phương thức từ một lớp cha. Nhưng trong trường hợp này, chúng tôi không muốn lớp 35 mất bất kỳ thay đổi nào có thể được thực hiện theo định dạng của chuỗi đầu ra của 54.Để làm điều này, bạn vẫn cần xác định phương thức kirk = ["James Kirk", 34, "Captain", 2265] spock = ["Spock", 35, "Science Officer", 2254] mccoy = ["Leonard McCoy", "Chief Medical Officer", 2266] 47 trên lớp trẻ class Dog: def __init__(self, name, age): self.name = name self.age = age 35. Nhưng thay vì xác định rõ ràng chuỗi đầu ra, bạn cần gọi lớp >>> Dog() <__main__.Dog object at 0x106702d30> 1 ____ ____147 bên trong lớp con Lát kirk = ["James Kirk", 34, "Captain", 2265] spock = ["Spock", 35, "Science Officer", 2254] mccoy = ["Leonard McCoy", "Chief Medical Officer", 2266] 47 bằng cách sử dụng các đối số tương tự mà bạn đã chuyển sang class Dog: def __init__(self, name, age): self.name = name self.age = age 60.Bạn có thể truy cập lớp cha từ bên trong phương pháp của lớp con bằng cách sử dụng 61:Khi bạn gọi
Tạo một lớp gọi là 71 kế thừa từ lớp 1 và ghi đè phương thức 47:Tham số Bạn có nên sử dụng OOP trong Python?OOP trong các nhà phát triển Python thường chọn sử dụng OOP trong các chương trình Python của họ vì nó làm cho mã trở nên dễ tái sử dụng hơn và giúp làm việc dễ dàng hơn với các chương trình lớn hơn.Các chương trình OOP ngăn bạn lặp lại mã vì một lớp có thể được xác định một lần và sử dụng lại nhiều lần.Developers often choose to use OOP in their Python programs because it makes code more reusable and makes it easier to work with larger programs. OOP programs prevent you from repeating code because a class can be defined once and reused many times.
OOP trong Python có cần thiết cho khoa học dữ liệu không?Đơn giản chỉ cần biết rằng DataFrame là một đối tượng cho phép bạn hiểu lý do tại sao DataFrame có một số phương thức nhất định, trong khi, nói, một danh sách Python không.Là một nhà khoa học dữ liệu, bạn sẽ không cần phải sử dụng lập trình hướng đối tượng.Đừng rơi vào cái bẫy mà mọi thứ cần phải tuân theo mô hình OOP.you won't always need to use object-oriented programming. Don't fall into the trap that everything needs to follow an OOP paradigm.
Tại sao tôi nên học OOP trong Python?Python được thiết kế với cách tiếp cận OOP và nó cung cấp các lợi thế sau: Cung cấp cấu trúc chương trình rõ ràng và mã sạch.Tạo điều kiện cho việc bảo trì và sửa đổi dễ dàng của mã hiện có.Vì lớp có thể chia sẻ, mã có thể được sử dụng lại.Provides a clear program structure and a clean code. Facilitates easy maintenance and modification of existing code. Since the class is sharable, the code can be reused. |