Có bao nhiêu nguyên tắc OOP trong Python?
Lập trình hướng đối tượng như một môn học đã thu hút được sự theo dõi phổ biến của các nhà phát triển. Python, ngôn ngữ lập trình đang được ưa chuộng cũng tuân theo mô hình lập trình hướng đối tượng. Nó liên quan đến việc khai báo các lớp và đối tượng Python đặt nền tảng cho các khái niệm OOP. Bài viết này về “lập trình hướng đối tượng python” sẽ hướng dẫn bạn cách khai báo các lớp python, khởi tạo các đối tượng từ chúng cùng với bốn phương pháp của OOP. Show
Trong bài viết này, các khía cạnh sau đây sẽ được đề cập chi tiết Bắt đầu nào Lập trình hướng đối tượng là gì? Lập trình hướng đối tượng là một cách lập trình máy tính sử dụng ý tưởng “” để biểu diễn dữ liệu và phương thức. Đây cũng là một cách tiếp cận được sử dụng để tạo mã gọn gàng và có thể tái sử dụng thay vì mã dư thừa. chương trình được chia thành các đối tượng độc lập hoặc một số chương trình nhỏ. Mỗi đối tượng Cá nhân đại diện cho một phần khác nhau của ứng dụng có logic và dữ liệu riêng để giao tiếp trong chính chúng Bây giờ, để có một bức tranh rõ ràng hơn về lý do tại sao chúng ta sử dụng oops thay vì pop, tôi đã liệt kê những điểm khác biệt bên dưới Sự khác biệt giữa lập trình hướng đối tượng và hướng thủ tụcLập trình hướng đối tượng (OOP) Lập trình hướng thủ tục (Pop) Đó là cách tiếp cận từ dưới lên Đó là cách tiếp cận từ trên xuống Chương trình được chia thành các đối tượng Chương trình được chia thành các chức năng Sử dụng công cụ sửa đổi quyền truy cập 'công khai', riêng tư', được bảo vệ' Không sử dụng công cụ sửa đổi quyền truy cập Nó an toàn hơn Nó kém an toàn hơn Đối tượng có thể di chuyển tự do trong các chức năng thành viên Dữ liệu có thể di chuyển tự do từ chức năng này sang chức năng khác trong các chương trình Nó hỗ trợ kế thừa Nó không hỗ trợ kế thừa Đó là tất cả về sự khác biệt, tiếp tục, hãy tìm ý tưởng về Python OOPs Conceots Các khái niệm OOP của Python là gì?Các khái niệm OOP (lập trình hướng đối tượng) chính trong Python bao gồm Lớp, Đối tượng, Phương thức, Kế thừa, Đa hình, Trừu tượng hóa dữ liệu và Đóng gói Đó là tất cả về sự khác biệt, hãy tiếp tục tìm hiểu về các lớp và đối tượng Lớp học và đối tượng là gì? Lớp là một tập hợp các đối tượng hoặc bạn có thể nói đó là một bản thiết kế của các đối tượng xác định các thuộc tính và hành vi chung. Bây giờ câu hỏi đặt ra, làm thế nào để bạn làm điều đó? Chà, nó nhóm dữ liệu một cách hợp lý theo cách mà khả năng sử dụng lại mã trở nên dễ dàng. Tôi có thể cho bạn một ví dụ thực tế - hãy nghĩ về một văn phòng có 'nhân viên' là một lớp và tất cả các thuộc tính liên quan đến nó như 'emp_name', 'emp_age', 'emp_salary', 'emp_id' là các đối tượng trong Python. Hãy để chúng tôi xem từ góc độ mã hóa rằng làm thế nào để bạn khởi tạo một lớp và một đối tượng Lớp được xác định theo từ khóa “Lớp” class class1(): // class 1 is the name of the class Ghi chú. Python không phân biệt chữ hoa chữ thường Các đối tượngCác đối tượng là một thể hiện của một lớp. Nó là một thực thể có trạng thái và hành vi. Tóm lại, nó là một thể hiện của một lớp có thể truy cập dữ liệu cú pháp. obj = class1() Ở đây obj là “đối tượng” của class1 Tạo đối tượng và lớp trong pythonThí dụ class employee(): def __init__(self,name,age,id,salary): //creating a function self.name = name // self is an instance of a class self.age = age self.salary = salary self.id = id emp1 = employee("harshit",22,1000,1234) //creating objects emp2 = employee("arjun",23,2000,2234) print(emp1.__dict__)//Prints dictionary Giải trình. 'emp1′ và 'emp2′ là các đối tượng được khởi tạo dựa trên lớp 'nhân viên'. Ở đây, từ (__dict__) là một "từ điển" in ra tất cả các giá trị của đối tượng 'emp1' dựa trên tham số đã cho (tên, tuổi, lương). (__init__) hoạt động như một hàm tạo được gọi bất cứ khi nào một đối tượng được tạo Tôi hy vọng bây giờ các bạn sẽ không gặp phải bất kỳ vấn đề nào khi xử lý 'lớp' và 'đối tượng' trong tương lai Với phần này, hãy để tôi giới thiệu cho bạn các phương pháp lập trình hướng đối tượng Phương pháp lập trình hướng đối tượngCác phương pháp lập trình hướng đối tượng giải quyết các khái niệm sau
Hãy để chúng tôi hiểu khái niệm thừa kế đầu tiên một cách chi tiết Di sảnĐã từng nghe người thân nói về đoạn hội thoại này “con giống hệt bố/mẹ của con”, lý do đằng sau điều này được gọi là ‘’. Từ khía cạnh Lập trình, Nó thường có nghĩa là “kế thừa hoặc chuyển các đặc điểm từ lớp cha sang lớp con mà không có bất kỳ sửa đổi nào”. Lớp mới được gọi là lớp dẫn xuất/lớp con và lớp mà nó được dẫn xuất từ đó được gọi là lớp cha/cơ sở Hãy để chúng tôi hiểu chi tiết từng chủ đề phụ Thừa kế đơnKế thừa một mức cho phép một lớp dẫn xuất kế thừa các đặc điểm từ một lớp cha duy nhất Thí dụ class employee1()://This is a parent class def __init__(self, name, age, salary): self.name = name self.age = age self.salary = salary class childemployee(employee1)://This is a child class def __init__(self, name, age, salary,id): self.name = name self.age = age self.salary = salary self.id = id emp1 = employee1('harshit',22,1000) print(emp1.age) đầu ra. 22 Giải trình
Kế thừa đa cấpKế thừa đa cấp cho phép một lớp dẫn xuất kế thừa các thuộc tính từ một lớp cha ngay lập tức, từ đó kế thừa các thuộc tính từ lớp cha của nó Thí dụ class employee()://Super class def __init__(self,name,age,salary): self.name = name self.age = age self.salary = salary class childemployee1(employee)://First child class def __init__(self,name,age,salary): self.name = name self.age = age self.salary = salary class childemployee2(childemployee1)://Second child class def __init__(self, name, age, salary): self.name = name self.age = age self.salary = salary emp1 = employee('harshit',22,1000) emp2 = childemployee1('arjun',23,2000) print(emp1.age) print(emp2.age) đầu ra. 22,23 Giải trình
Kế thừa phân cấpKế thừa mức phân cấp cho phép nhiều hơn một lớp dẫn xuất kế thừa các thuộc tính từ lớp cha Thí dụ class employee(): def __init__(self, name, age, salary): //Hierarchical Inheritance self.name = name self.age = age self.salary = salary class childemployee1(employee): def __init__(self,name,age,salary): self.name = name self.age = age self.salary = salary class childemployee2(employee): def __init__(self, name, age, salary): self.name = name self.age = age self.salary = salary emp1 = employee('harshit',22,1000) emp2 = employee('arjun',23,2000) print(emp1.age) print(emp2.age) đầu ra. 22,23 Giải trình
Đa thừa kếKế thừa nhiều mức cho phép một lớp dẫn xuất kế thừa các thuộc tính từ nhiều lớp cơ sở Thí dụ class employee1()://Parent class def __init__(self, name, age, salary): self.name = name self.age = age self.salary = salary class employee2()://Parent class def __init__(self,name,age,salary,id): self.name = name self.age = age self.salary = salary self.id = id class childemployee(employee1,employee2): def __init__(self, name, age, salary,id): self.name = name self.age = age self.salary = salary self.id = id emp1 = employee1('harshit',22,1000) emp2 = employee2('arjun',23,2000,1234) print(emp1.age) print(emp2.id) đầu ra. 22,1234 Giải trình. Trong ví dụ trên, tôi lấy 2 lớp cha là “employee1” và “employee2”. Và một lớp con “childemployee”, đang kế thừa cả hai lớp cha bằng cách khởi tạo các đối tượng ’emp1′ và ’emp2′ dựa trên các tham số của các lớp cha Đây là tất cả về tính kế thừa, tiếp tục trong Lập trình hướng đối tượng Python, chúng ta hãy tìm hiểu sâu về '' đa hình Chắc hẳn tất cả các bạn đều đã sử dụng GPS để điều hướng tuyến đường. Thật ngạc nhiên khi bạn đi qua nhiều tuyến đường khác nhau cho cùng một điểm đến tùy thuộc vào giao thông, theo quan điểm lập trình, điều này được gọi là 'đa hình'. Đây là một trong những phương pháp OOP như vậy, trong đó một tác vụ có thể được thực hiện theo nhiều cách khác nhau. Nói một cách đơn giản, nó là một thuộc tính của một đối tượng cho phép nó có nhiều dạng Đa hình có hai loại
Đa hình thời gian biên dịchĐa hình thời gian biên dịch còn được gọi là đa hình tĩnh được giải quyết trong thời gian biên dịch chương trình. Một ví dụ phổ biến là "quá tải phương thức". Để tôi chỉ cho bạn một ví dụ nhanh về điều tương tự Thí dụ class employee1(): def name(self): print("Harshit is his name") def salary(self): print("3000 is his salary") def age(self): print("22 is his age") class employee2(): def name(self): print("Rahul is his name") def salary(self): print("4000 is his salary") def age(self): print("23 is his age") def func(obj)://Method Overloading obj.name() obj.salary() obj.age() obj_emp1 = employee1() obj_emp2 = employee2() func(obj_emp1) func(obj_emp2) đầu ra Khắc nghiệt là tên của anh ấy Giải trình
Đa hình thời gian chạyĐa hình thời gian chạy cũng được gọi là đa hình động trong đó nó được giải quyết trong thời gian chạy. Một ví dụ phổ biến về tính đa hình trong thời gian chạy là "ghi đè phương thức". Hãy để tôi chỉ cho bạn thông qua một ví dụ để hiểu rõ hơn Thí dụ class employee(): def __init__(self,name,age,id,salary): self.name = name self.age = age self.salary = salary self.id = id def earn(self): pass class childemployee1(employee): def earn(self)://Run-time polymorphism print("no money") class childemployee2(employee): def earn(self): print("has money") c = childemployee1 c.earn(employee) d = childemployee2 d.earn(employee) đầu ra. không có tiền, có tiền Giải trình. Trong ví dụ trên, tôi đã tạo hai lớp 'childemployee1' và 'childemployee2' được dẫn xuất từ cùng một lớp cơ sở 'employee'. Đây là cái bẫy mà một người không nhận được tiền trong khi người kia nhận được. Bây giờ câu hỏi thực sự là làm thế nào điều này xảy ra? . Bây giờ, trong hai lớp dẫn xuất, tôi đã sử dụng cùng một hàm trống và sử dụng câu lệnh in là 'không có tiền' và 'có tiền'. Cuối cùng, tạo hai đối tượng và gọi hàm Chuyển sang phương pháp Lập trình hướng đối tượng Python tiếp theo, tôi sẽ nói về đóng gói đóng góiỞ dạng thô, đóng gói về cơ bản có nghĩa là liên kết dữ liệu trong một lớp duy nhất. Python không có bất kỳ từ khóa riêng nào, không giống như Java. Một lớp không nên được truy cập trực tiếp mà phải có tiền tố trong dấu gạch dưới Hãy để tôi chỉ cho bạn một ví dụ để hiểu rõ hơn Thí dụ ________số 8_______đầu ra 1234 Giải trình. Bạn sẽ nhận được câu hỏi này dấu gạch dưới và lỗi là gì? Vì vậy, tôi đã sử dụng phương thức setter cung cấp quyền truy cập gián tiếp vào chúng trong ví dụ tiếp theo của tôi Thí dụ class employee(): def __init__(self): self.__maxearn = 1000000 def earn(self): print("earning is:{}".format(self.__maxearn)) def setmaxearn(self,earn)://setter method used for accesing private class self.__maxearn = earn emp1 = employee() emp1.earn() emp1.__maxearn = 10000 emp1.earn() emp1.setmaxearn(10000) emp1.earn() đầu ra thu nhập là. 1000000, thu nhập là. 1000000, thu nhập là. 10000 Giải trình. Việc sử dụng phương thức setter cung cấp quyền truy cập gián tiếp vào phương thức lớp riêng. Ở đây tôi đã định nghĩa một lớp employee và sử dụng (__maxearn) là phương thức setter được sử dụng ở đây để lưu trữ thu nhập tối đa của nhân viên và một hàm setter setmaxearn() lấy giá làm tham số Đây là một ví dụ rõ ràng về đóng gói trong đó chúng tôi đang hạn chế quyền truy cập vào phương thức lớp riêng và sau đó sử dụng phương thức setter để cấp quyền truy cập Tiếp theo trong phương pháp lập trình hướng đối tượng python nói về một trong những khái niệm chính được gọi là trừu tượng Giả sử bạn đã đặt vé xem phim từ bookmyshow bằng ngân hàng ròng hoặc bất kỳ quy trình nào khác. Bạn không biết quy trình tạo mã pin hoặc cách xác minh được thực hiện. Điều này được gọi là 'trừu tượng hóa' từ khía cạnh lập trình, về cơ bản, điều đó có nghĩa là bạn chỉ hiển thị chi tiết triển khai của một quy trình cụ thể và ẩn chi tiết khỏi người dùng. Nó được sử dụng để đơn giản hóa các vấn đề phức tạp bằng cách mô hình hóa các lớp phù hợp với vấn đề Một lớp trừu tượng không thể được khởi tạo, điều đó đơn giản có nghĩa là bạn không thể tạo các đối tượng cho loại này. Nó chỉ có thể được sử dụng để kế thừa các chức năng Thí dụ class employee(): def __init__(self,name,age,id,salary): //creating a function self.name = name // self is an instance of a class self.age = age self.salary = salary self.id = id emp1 = employee("harshit",22,1000,1234) //creating objects emp2 = employee("arjun",23,2000,2234) print(emp1.__dict__)//Prints dictionary0 đầu ra. emp_id là 12345 Giải trình. Như bạn có thể thấy trong ví dụ trên, chúng ta đã nhập một phương thức trừu tượng và phần còn lại của chương trình có lớp cha và lớp dẫn xuất. Một đối tượng được khởi tạo cho lớp cơ sở 'childemployee' và chức năng trừu tượng đang được sử dụng Python có hướng đối tượng 100 phần trăm không?Python không có các chỉ định truy cập như “riêng tư” như trong java. Nó hỗ trợ hầu hết các thuật ngữ liên quan đến ngôn ngữ lập trình hướng đối tượng ngoại trừ khả năng đóng gói mạnh mẽ. Do đó nó không hoàn toàn hướng đối tượng Điều này đưa chúng ta đến phần cuối của bài viết về “Python lập trình hướng đối tượng”. Tôi hy vọng bạn đã hiểu rõ tất cả các khái niệm liên quan đến lớp Python, đối tượng và khái niệm hướng đối tượng trong python. Hãy chắc chắn rằng bạn thực hành càng nhiều càng tốt và hoàn nguyên kinh nghiệm của bạn Có một câu hỏi cho chúng tôi? . Để có kiến thức chuyên sâu về Python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký ngay khóa đào tạo Python trực tiếp của chúng tôi với sự hỗ trợ 24/7 và quyền truy cập trọn đời Khám phá toàn bộ khả năng của bạn để trở thành một chuyên gia AI và ML thông qua Khóa học Trí tuệ nhân tạo của chúng tôi. Tìm hiểu về các công nghệ khác nhau liên quan đến AI như Học máy, Học sâu, Thị giác máy tính, Xử lý ngôn ngữ tự nhiên, Nhận dạng giọng nói và Học tăng cường Các nguyên tắc của OOP trong Python là gì?Bốn trụ cột của OOPS trong Python là gì? . đóng gói Di sản đa hình trừu tượng 4 loại OOP trong Python là gì?Giống như các ngôn ngữ Hướng đối tượng khác, khi tạo các đối tượng sử dụng các lớp, có bốn (4) nguyên tắc cơ bản để viết mã rõ ràng và ngắn gọn. Những nguyên tắc này được gọi là bốn trụ cột của lập trình hướng đối tượng (OOP). Bốn trụ cột này là Kế thừa, Đa hình, Đóng gói và Trừu tượng hóa .
Có OOP trong Python không?Python là ngôn ngữ lập trình tuyệt vời hỗ trợ OOP . Bạn sẽ sử dụng nó để định nghĩa một lớp với các thuộc tính và phương thức, sau đó bạn sẽ gọi. Python cung cấp một số lợi ích so với các ngôn ngữ lập trình khác như Java, C++ hoặc R.
4 nguyên tắc OOP là gì?Trừu tượng hóa, đóng gói, đa hình và kế thừa là bốn nguyên tắc lý thuyết chính của lập trình hướng đối tượng. |