Thành phần Python

Để trở thành một nhà phát triển phần mềm thành công, điều quan trọng là phải hiểu rõ về thành phần lớp. Ngoài thành phần lớp, tính kế thừa của lớp cũng quan trọng không kém. Trong bài đăng này, chúng ta sẽ định nghĩa thành phần lớp và kế thừa lớp — và xem xét các ví dụ về từng loại. Chúng ta cũng sẽ thảo luận về những tình huống tốt nhất để sử dụng từng. Hãy bắt đầu với các định nghĩa nhanh về từng. Để biết thêm thông tin về Thành phần lớp so với Kế thừa, hãy xem một trong những khóa học trực tuyến Python tốt nhất của chúng tôi. Nó sẽ bao gồm những khái niệm này và nhiều hơn nữa

Thành Phần Lớp Học là gì?

Thành phần lớp là khi một lớp tham chiếu một lớp khác trong một trong các trường của nó. Nói cách khác, sáng tác là một mối quan hệ có-một. Trái ngược với thừa kế, đó là một mối quan hệ is-a. Chúng tôi sẽ đề cập thêm về điều đó trong thời gian ngắn

Kế thừa lớp là gì?

Khóa học trực tuyến

con trăn

  • 143 Video
  • Luyện thi
  • huấn luyện
  • câu đố

HÀNG THÁNG

USD/người học/tháng

HÀNG NĂM

USD/người học/tháng

Xem bây giờ

Kế thừa lớp là khi một lớp được tạo như một tập hợp con của một lớp khác. Lớp mới sẽ có tất cả các trường và phương thức của lớp mà nó kế thừa — ngoài các trường và phương thức riêng của nó. Kế thừa là một mối quan hệ is-a

Bây giờ chúng ta đã có một định nghĩa nhanh và bẩn về cả hai, hãy xem qua từng loại. Cả hai định nghĩa đều giống nhau, nhưng tồn tại sự khác biệt rõ rệt. Hãy bắt đầu bằng cách thảo luận chi tiết hơn về thành phần lớp học

thành phần lớp. Một cái nhìn sâu sắc hơn

Cần lưu ý rằng thành phần lớp không dành riêng cho Python. nó là một khối xây dựng cơ bản của lập trình hướng đối tượng. Tuy nhiên, nó được sử dụng rộng rãi trong Python và bất kỳ lập trình viên Python nào cũng nên làm quen với khái niệm này

Hãy nhớ rằng một lớp được tạo bằng cách sử dụng các phương thức và trường. Các phương thức là các thủ tục mà chúng ta muốn một lớp cụ thể thực hiện. Ví dụ: nếu chúng tôi có một lớp tên là Nhân viên, chúng tôi muốn một phương thức có tên là get_available_time_off để xem họ còn bao nhiêu ngày nghỉ

Trường là một thuộc tính được liên kết với lớp. Trong ví dụ về nhân viên, một trường sẽ giống như "id nhân viên" hoặc "ngày sinh". Tôi. E, một số đối tượng hoặc khái niệm vốn có của cấu trúc dữ liệu mà chúng tôi đang cố gắng xác định. Một lĩnh vực có thể là bất cứ điều gì. một chuỗi, một số nguyên, một số thập phân hoặc quan trọng hơn là một đối tượng khác. Khi một trường là một đối tượng khác, thì chúng ta có thành phần lớp. Dưới đây là một ví dụ làm việc


Lưu ý rằng một trong những thuộc tính được gọi là lợi ích. Hãy nhớ rằng thành phần lớp học là mối quan hệ có-một. Tôi. E, tất cả nhân viên đều có lợi ích. Thuộc tính lợi ích thực sự cũng là một lớp. Dưới đây là lớp tạo nên lợi ích


Như bạn có thể thấy, lớp nhân viên là tập hợp của các trường riêng của nó và những trường trong lợi ích. Trong lớp lợi ích, chúng tôi nhận được danh hiệu từ lớp nhân viên. Dựa trên chức danh của nhân viên, chúng tôi xác định liệu họ có nhận được xe ô tô của công ty hay không và họ được phân bổ trong bao nhiêu ngày. Lưu ý rằng chúng tôi đang chuyển tiêu đề dưới dạng một chuỗi. Trong một thế giới hoàn hảo, đây sẽ là một phép liệt kê thay thế

Ưu điểm của thành phần

Một trong những lợi thế lớn nhất của thành phần lớp là tính linh hoạt mà nó mang lại cho cơ sở mã của bạn. Nó cho phép bạn kết hợp lỏng lẻo các trường khác nhau để chúng có thể được sử dụng lại cho các mục đích sử dụng khác nhau. Bằng cách đó, chúng ta có thể sử dụng lớp lợi ích cho các cá nhân khác. Ví dụ: nếu chúng ta muốn tạo một lớp nhà thầu hoặc một lớp hourly_employee

Một ưu điểm lớn khác của thành phần là trường có thể được thay đổi trong thời gian chạy. Đây là điều không thể làm được với thừa kế. Với thành phần lớp, nếu chúng tôi muốn thay đổi lợi ích thành thứ khác trong thời gian chạy, chúng tôi có thể dễ dàng làm như vậy. Không giống như kế thừa, nơi mã sẽ phải được viết lại. Nói về Kế thừa, chúng ta hãy đi sâu vào vấn đề đó một chút

Kế thừa lớp. Một cái nhìn sâu sắc hơn

Để chuyển sang một ví dụ khác, giả sử bạn là chủ sở hữu của một cửa hàng phần cứng và cần đại diện cho công cụ của mình theo chương trình. Xét cho cùng, các công cụ đều giống nhau, tất cả đều có tên, mô tả và giá cả. Để không lặp lại công việc, có thể sử dụng tính kế thừa ở đây để làm cho mã có tổ chức hơn

Đầu tiên, chúng ta sẽ tạo một lớp gọi là công cụ. Tất cả các công cụ khác nhau sẽ kế thừa các thuộc tính của Công cụ. Hãy nhớ rằng, thừa kế là một mối quan hệ is-a; . Đây là một ví dụ về lớp công cụ của chúng ta, đây sẽ là lớp cha mà tất cả những lớp khác sẽ kế thừa từ đó

undefined

Nó chỉ có khoảng 10 dòng mã, nhưng nó thực sự sẽ giữ cho mã của chúng ta chặt chẽ và có tổ chức. Bởi vì chúng tôi đang điều hành một cửa hàng nên chúng tôi biết rằng một công cụ sẽ có giá, tên và mô tả. Chúng tôi cũng biết rằng tất cả các công cụ đều được sử dụng cho mục đích nào đó, do đó, một phương thức có tên là sử dụng đã được đưa vào lớp cha. Ngoài ra, phương pháp ma thuật str của chúng tôi có thể được chia sẻ giữa tất cả các lớp con

Bây giờ chúng ta đã xác định siêu lớp, hãy tạo một vài lớp con sẽ kế thừa các trường này và phương thức sử dụng

undefined

Trong lớp con này, chúng tôi đã tạo một lớp có tên là tuốc nơ vít kế thừa từ công cụ. Hàm sử dụng không làm bất cứ điều gì trừ khi chúng tôi viết một cái gì đó cụ thể cho lớp con nhất định, vì vậy tôi đã viết một câu lệnh in đơn giản. Cuối cùng, tôi đặt giá làm biến thể hiện thành ba. Điều này nói rằng tất cả các đối tượng tuốc nơ vít sẽ là $3. Tiếp theo, hãy tạo một lớp búa

undefined

Lưu ý rằng nó rất giống với lớp tuốc nơ vít. Sự khác biệt chính là chúng tôi đã tùy chỉnh phương thức sử dụng dành riêng cho một cái búa. Cuối cùng, hãy xem các lớp này sẽ được khởi tạo như thế nào


Sau khi chạy lớp chính này, chúng ta sẽ thấy


Ưu điểm của thừa kế

Ưu điểm lớn nhất của tính kế thừa là khi bạn cần một lớp rất giống với một lớp khác nhưng cần điều chỉnh một chút. Không giống như thành phần lớp, điều này đang tạo ra sự liên kết chặt chẽ giữa lớp cha và lớp con. Kế thừa sẽ giúp bạn tuân thủ một trong những nguyên tắc cốt lõi của lập trình. KHÔ [Đừng lặp lại chính mình]. Bằng cách tổ chức mã của bạn một cách thông minh bằng cách sử dụng tính kế thừa, việc đọc và bảo trì sẽ dễ dàng hơn nhiều

Suy nghĩ cuối cùng

Hy vọng rằng bạn đang bắt đầu hiểu sự khác biệt giữa thành phần và thừa kế. Kế thừa cho chúng ta khả năng xác định các đặc điểm rộng cho một số cấu trúc dữ liệu nhất định, trong khi thành phần cho phép chúng ta chèn các lớp vào các trường của các lớp khác

Cách tốt nhất để thực sự hiểu sự khác biệt giữa hai điều này là thực hành, thực hành, thực hành. Tiếp tục thử nghiệm với cả hai cho đến khi thiết lập được sự hiểu biết vững chắc. Hãy nhớ rằng, nếu quan hệ là một is-a, thì đó là thừa kế. Nếu mối quan hệ giữa hai khái niệm là có-a, hãy nghĩ rằng thành phần lớp học. Mã hóa vui vẻ

Tải xuống

Hướng dẫn cơ bản về chứng chỉ DevOps

Hướng dẫn chứng chỉ DevOps dài 63 trang sẽ giúp bạn tìm các chứng chỉ phù hợp nhất với kinh nghiệm và mục tiêu nghề nghiệp của bạn, bao gồm các chứng chỉ từ các nhà cung cấp hàng đầu như AWS, Microsoft và Google Cloud Platform

Họ

Yêu cầu

Họ

E-mail

Vai trò công việc của bạn là gì?

Gửi cho tôi tin tức và tài nguyên đào tạo CNTT về CBT Nuggets. [không bắt buộc]

Nộp

Bằng cách gửi biểu mẫu này, bạn đồng ý rằng bạn đã đọc, hiểu và có thể đồng ý với chính sách bảo mật của chúng tôi

Sự khác biệt giữa tổng hợp và thành phần trong Python là gì?

Thành phần là một loại Tập hợp trong đó hai thực thể cực kỳ phụ thuộc vào nhau . Nó chỉ ra một thành phần quan hệ. Cả hai thực thể đều phụ thuộc vào nhau trong thành phần. Đối tượng tổng hợp không thể tồn tại mà không có thực thể khác khi có một thành phần giữa hai thực thể.

một thành phần trong mã là gì?

Thành phần là một trong những khái niệm cơ bản trong lập trình hướng đối tượng. Nó mô tả một lớp tham chiếu đến một hoặc nhiều đối tượng của các lớp khác trong các biến thể hiện . Điều này cho phép bạn lập mô hình liên kết has-a giữa các đối tượng.

Sự khác biệt giữa kế thừa và thành phần là gì?

Kế thừa và thành phần là hai kỹ thuật lập trình mà các nhà phát triển sử dụng để thiết lập mối quan hệ giữa các lớp và đối tượng. Trong khi tính kế thừa dẫn xuất lớp này từ lớp khác, thành phần định nghĩa một lớp là tổng của các phần của nó .

Tại sao thành phần tốt hơn thừa kế?

Một lợi ích nữa của sáng tác so với thừa kế là phạm vi thử nghiệm . Kiểm tra đơn vị dễ dàng trong thành phần vì chúng tôi biết tất cả các phương thức chúng tôi đang sử dụng từ lớp khác. Chúng ta có thể mô phỏng nó để thử nghiệm trong khi thừa kế, chúng ta phụ thuộc rất nhiều vào siêu lớp và không biết tất cả các phương thức của siêu lớp sẽ được sử dụng.

Chủ Đề