HomeLập trìnhPythoncách tạo mô-đun...

cách tạo mô-đun và lớp với Python


của Hari Santanam

1*0PG2toS66TDJQQ7AtHGJ-Q
Khối

Trong các ngôn ngữ máy tính hướng đối tượng như Python, các lớp về cơ bản là một khuôn mẫu để tạo các đối tượng của riêng bạn. Các đối tượng là sự đóng gói của các biến và hàm thành một thực thể duy nhất. Các đối tượng lấy các biến và hàm của chúng từ các lớp.

Nói gì cơ?

Dưới đây là một số ví dụ sẽ giúp bạn hiểu — hãy đọc tiếp. Ngoài ra còn có một vỏ mã tương tác, chỉ cần nhấn nút “Chạy” ở đầu cửa sổ cụ thể.

Cách đơn giản nhất để mô tả các lớp và cách sử dụng chúng là:

Hãy tưởng tượng bạn có sức mạnh to lớn. Bạn tạo một loài (“lớp”).

Sau đó, bạn tạo các thuộc tính cho loài đó (“thuộc tính”) — chiều cao, cân nặng, tay chân, màu sắc, sức mạnh, v.v.

Sau đó, bạn tạo một phiên bản của loài đó — chó Fido, Drogon từ Game of Thrones, v.v. Sau đó, bạn làm việc với các trường hợp này:

  • Ví dụ, trong một trò chơi, họ sẽ tham gia vào hành động, tương tác, sử dụng các thuộc tính của mình.
  • Trong một ứng dụng ngân hàng, chúng sẽ là các giao dịch khác nhau.
  • Trong một ứng dụng mua/bán/trao đổi/cho thuê phương tiện, loại phương tiện sau đó có thể tạo ra các lớp phụ như ô tô. Mỗi chiếc sẽ có các thuộc tính như số dặm, tùy chọn, tính năng, màu sắc và trang trí.

Bạn đã có thể thấy lý do tại sao điều này là hữu ích. Bạn đang tạo, tái sử dụng, điều chỉnh và cải thiện các mục theo cách rất hiệu quả, hợp lý và hữu ích.

Đến đây, có lẽ bạn đã nhận ra rằng đây là một cách để phân loại và nhóm, một cách tương tự như cách con người học:

  • Động vật là những sinh vật sống không phải là con người hay cây cối, theo nghĩa cơ bản
  • sau đó bạn chuyển sang các loại động vật khác nhau – chó, mèo có lẽ là những động vật đầu tiên mà hầu hết chúng ta tìm hiểu về
  • sau đó bạn chuyển sang các thuộc tính khác nhau của động vật — hình dạng, kích thước, âm thanh, các bộ phận phụ, v.v.

Ví dụ, khi bạn còn là một đứa trẻ, hiểu biết đầu tiên của bạn về con chó có lẽ là một con vật có bốn chân biết sủa. Sau đó, bạn đã học cách phân biệt rằng một số là chó thật, một số khác là đồ chơi. Rằng khái niệm “con chó” này có nhiều loại.

Tạo và sử dụng các lớp về cơ bản là:

  • xây dựng một mẫu để đưa “mọi thứ” vào – một phân loại
  • mà sau đó có thể được hoạt động trên. Ví dụ: thu hút tất cả những người có nuôi chó mà bạn có thể yêu cầu liên kết tới một blog về thú cưng hoặc tất cả các khách hàng ngân hàng có thể là khách hàng tiềm năng tốt cho một thẻ tín dụng mới.
Đọc thêm  Cách sử dụng OpenCV và Python cho Computer Vision và AI

Điểm chính ở đây là các lớp học là các đối tượng có thể tạo ra các thể hiện của các mẫu đó, trên đó có thể áp dụng các thao tác và phương thức. Đó là một cách tuyệt vời để khái niệm hóa, tổ chức và xây dựng hệ thống phân cấp cho bất kỳ tổ chức hoặc quy trình nào.

Khi thế giới của chúng ta trở nên phức tạp hơn, đây là một cách để bắt chước sự phức tạp đó từ góc độ thứ bậc. Nó cũng xây dựng sự hiểu biết sâu sắc hơn về các quy trình và tương tác cho các cài đặt kinh doanh, kỹ thuật và xã hội từ điểm công nghệ thông tin ảo.

Một ví dụ có thể là một trò chơi điện tử mà bạn tạo ra. Mỗi ký tự có thể là một “lớp”, với các thuộc tính riêng, tương tác với các thể hiện của các lớp khác. Vua George của lớp “King” có thể tương tác với Court Jester Funnyman của lớp “Chú hề”, v.v. Ví dụ, một vị Vua có thể có một lớp “người hầu” hoàng gia và một lớp “người hầu” sẽ luôn có một lớp “Vua”.

Đây là những gì chúng ta sẽ làm:

  • tạo một lớp và sử dụng nó
  • tạo một mô-đun và di chuyển việc tạo và khởi tạo lớp sang mô-đun
  • gọi mô-đun trong một chương trình mới để sử dụng lớp

Mã có sẵn trong GitHub tại đây.

#TSB - Create Class in Python - rocket positions (x,y) and graph
#some items and comments bolded to call attention to processimport matplotlib.pyplot as plt
class Rocket():  def __init__(self, x=0, y=0):    #each rocket has (x,y) position; user or calling function has choice    #of passing in x and y values, or by default they are set at 0    self.x = x    self.y = y      def move_up(self):    self.y += 1      def move_down(self):    self.y -= 1      def move_right(self):    self.x += 1      def move_left(self):    self.x -= 1
#Make a series of rockets - x,y positions, I am calling it rocketrockets=[]rockets.append(Rocket())rockets.append(Rocket(0,2))rockets.append(Rocket(1,4))rockets.append(Rocket(2,6))rockets.append(Rocket(3,7))rockets.append(Rocket(5,9))rockets.append(Rocket(8, 15))  #Show on a graph where each rocket is
for index, rocket in enumerate(rockets):  #original position of rockets  print("Rocket %d is at (%d, %d)." % (index, rocket.x, rocket.y))  plt.plot(rocket.x, rocket.y, 'ro', linewidth=2, linestyle="dashed", markersize=12)  #move the 'rocket' one up  rocket.move_up()  print("New Rocket position %d is at (%d, %d)." % (index, rocket.x, rocket.y))  #plot the new position  plt.plot(rocket.x, rocket.y, 'bo', linewidth=2, linestyle="dashed", markersize=12)  #move the rocket left, then plot the new position  rocket.move_left()  plt.plot(rocket.x, rocket.y, 'yo', linewidth=2, linestyle="dashed", markersize=12)
#show graph legend to match colors with positionplt.gca().legend(('original position','^ - Moved up', '< - Moved left'))plt.show()#plt.legend(loc="upper left")
1*HVwrF6BepYaTcRAltJaPDQ
Đầu ra từ đoạn mã trên, sử dụng lớp Python

Bây giờ chúng ta hãy tạo một mô-đun và chuyển một số mã ở trên sang mô-đun. Bất cứ khi nào chúng ta cần tạo tập hợp tọa độ x, y đơn giản này trong bất kỳ chương trình nào, chúng ta có thể sử dụng mô-đun để làm như vậy.

Đọc thêm  Cách thiết lập môi trường ảo trong Python – Và tại sao nó lại hữu ích

Mô-đun là gì và tại sao chúng ta cần nó?

Một mô-đun là một tệp chứa các định nghĩa và câu lệnh Python. Mô-đun là mã Python có thể được gọi từ các chương trình khác cho các tác vụ thường được sử dụng mà không cần phải nhập chúng vào từng chương trình sử dụng chúng.

Ví dụ: khi bạn gọi “matplotlib.plot”, bạn đang gọi một mô-đun gói. Nếu bạn không có mô-đun này, bạn sẽ phải xác định chức năng vẽ đồ thị trong mọi chương trình đã sử dụng một đồ thị cốt truyện.

Từ tài liệu Python:

Nếu bạn thoát khỏi trình thông dịch Python và nhập lại, các định nghĩa bạn đã tạo (hàm và biến) sẽ bị mất. Do đó, nếu bạn muốn viết một chương trình dài hơn một chút, tốt hơn hết bạn nên sử dụng một trình soạn thảo văn bản để chuẩn bị đầu vào cho trình thông dịch và chạy nó với tệp đó làm đầu vào thay thế. Điều này được gọi là tạo một tập lệnh. Khi chương trình của bạn dài hơn, bạn có thể muốn chia nó thành nhiều tệp để bảo trì dễ dàng hơn. Bạn cũng có thể muốn sử dụng một chức năng tiện dụng mà bạn đã viết trong một số chương trình mà không cần sao chép định nghĩa của nó vào từng chương trình.

Để hỗ trợ điều này, Python có một cách để đưa các định nghĩa vào một tệp và sử dụng chúng trong một tập lệnh hoặc trong một phiên bản tương tác của trình thông dịch. Một tệp như vậy được gọi là một mô-đun; các định nghĩa từ một mô-đun có thể được nhập vào các mô-đun khác hoặc vào mô-đun chính (tập hợp các biến mà bạn có quyền truy cập trong tập lệnh được thực thi ở cấp cao nhất và ở chế độ máy tính).

Đây là mô-đun đơn giản của chúng tôi. Cần phải tạo lớp và các hàm để chuyển một thể hiện của lớp đó từ chương trình trên sang lớp riêng của nó. Sau đó, chúng tôi sẽ sử dụng điều này trong một chương trình mới chỉ bằng cách gọi và tham chiếu mô-đun này:

Lưu ý những gì chúng tôi đã làm ở trên:

  • đã tạo và khởi tạo lớp
  • đã tạo một hàm để di chuyển một thể hiện của lớp theo bốn hướng chính (lên, xuống, phải, trái) và các hướng tăng dần — dưới dạng tham số hoặc đối số cho hàm
  • đã tạo một hàm khác để tính khoảng cách giữa hai phiên bản của lớp, sử dụng công thức khoảng cách đồ thị
Đọc thêm  Nối trong Python – Cách nối vào Danh sách hoặc Mảng

Đây là cách chúng ta sẽ sử dụng mô-đun mới để viết lại cùng một chương trình từ phần đầu tiên. Lưu ý trong phần nhập lúc đầu, bây giờ chúng ta nhập simple_module1 mô-đun mà chúng tôi vừa tạo:

Đây là đầu ra từ mã sử dụng mô-đun của chúng tôi. Lưu ý rằng chúng giống nhau, ngoại trừ tiêu đề biểu đồ và hình dạng của các điểm đánh dấu vị trí mà tôi đã thay đổi cho mục đích so sánh.

1*M5O4PXU-UqHuXe62qSPezg
Đầu ra từ mã từ việc tạo và gọi mô-đun của riêng chúng tôi!
1*-Ihrh85VkkfYuZhiH_4oAg
So sánh tệp gốc bên trái (tạo lớp, sử dụng nó) và chức năng tương tự bằng cách sử dụng một mô-đun, bên phải
1*QnBS_HmigffIj6PBz2DvUQ
So sánh đầu ra. Ở phía bên phải, tôi thay đổi hình dạng điểm đánh dấu để phân biệt, nhưng các vị trí không thay đổi.

Điều đó thật tuyệt, bạn có thể nói – một số cách sử dụng khác cho việc này là gì? Một ví dụ kinh điển là tài khoản ngân hàng. Một lớp khách hàng có thể chứa tên và chi tiết liên hệ và — quan trọng hơn — lớp tài khoản sẽ có các yếu tố gửi và rút tiền.

Điều này được đơn giản hóa quá mức, nhưng với mục đích minh họa, nó rất hữu ích. Vậy là xong — tạo một mẫu, sau đó xác định các phiên bản của mẫu đó với các chi tiết (thuộc tính) và thêm giá trị bằng cách cộng, trừ, sửa đổi, di chuyển và sử dụng các phiên bản này cho các mục tiêu chương trình của bạn.

Vẫn còn băn khoăn về các lớp học? Được rồi, hãy bắt đầu từ “sang trọng” — đây là một minh họa đơn giản khác. Chúng ta sẽ gọi lớp này là “Person”. Nó chỉ có hai thuộc tính — tên và tuổi. Sau đó, chúng tôi sẽ thêm một ví dụ về điều này với tên và tuổi của một người và in nó. Tùy thuộc vào mục tiêu của bạn là gì, bạn có thể hình dung tất cả các chi tiết khác mà bạn có thể thêm vào — ví dụ: tình trạng hôn nhân và tùy chọn vị trí cho ứng dụng mạng xã hội, kinh nghiệm làm việc trong nhiều năm và chuyên môn ngành cho ứng dụng liên quan đến nghề nghiệp. Nhấn vào hình tam giác nhỏ bên dưới để xem nó hoạt động.

Vì vậy, có bạn có nó. Bạn có thể tạo nhiều lớp khác nhau, có lớp cha, lớp con, v.v. Cảm ơn vì đã đọc – hãy vỗ tay nếu bạn thích nó. Dưới đây là một số tài liệu tham khảo khác nếu bạn muốn tìm hiểu thêm:



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status