Sự khác biệt giữa các mô-đun và lớp trong Python là gì?
Khái niệm lớp, xuất hiện trong nhiều ngôn ngữ lập trình, là nền tảng cho lập trình hướng đối tượng và rất dễ hiểu. Lớp dùng để trừu tượng hóa các đặc điểm chung của các đối tượng khác nhau, phân loại các đối tượng giống nhau thành cùng một khái niệm theo nguyên tắc tương tự. Lớp đóng gói dữ liệu và hoạt động để sử dụng lại trong tương lai Show Dưới đây là một ví dụ lớp python class TestClass(Object): def func_1(self): ...... def func_2(self): ...... 2. mô-đunTrong Python một. tệp py được coi là một mô-đun. Sau khi tệp tập lệnh được tạo, các hàm và biến nhất định được xác định. Bạn có thể sử dụng lại các hàm và biến này bằng cách nhập mô-đun vào các tệp khác yêu cầu các hàm hoặc biến này. Tên mô-đun là tên tệp trừ đi. hậu tố py Các mô-đun cũng có thể được chia thành các mô-đun tích hợp sẵn và các mô-đun tùy chỉnh. Các mô-đun tích hợp được tích hợp vào Python, chẳng hạn như ~$ python3 Python 3.7.1 (default, Dec 14 2018, 19:28:38) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> dir() ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__'] >>> dir('django') ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] 2. 1 Đường dẫn tìm kiếm mô-đunKhi nhập một mô-đun, trình thông dịch sẽ tìm mô-đun trong gói hiện tại. Nếu không tìm thấy, nó sẽ tìm thấy nó trong mô-đun tích hợp. Nếu không tìm thấy cũng được thì tìm file module tương ứng (module_name. py) theo đường dẫn trong giá trị 3. Bưu kiệnMột gói là một cấu trúc thư mục tệp phân cấp. Nó định nghĩa một môi trường thực thi ứng dụng python bao gồm n mô-đun hoặc n gói con. Một gói là một thư mục chứa __init__. py, phải chứa __init__. py và các mô-đun hoặc gói con khác Gói có thể nhập các gói khác bằng lệnh import django.http from django.conf.urls import url Tệp đầu tiên trong thư mục gói phải là __init__. py. Nếu cũng có __init__. py trong thư mục con thì nó là gói con của gói hiện tại Một lớp có thể được khai báo trong shell tương tác hoặc mô-đun. Nếu một lớp được khai báo trong mô-đun, nó được coi là một thuộc tính của mô-đun. Điều này có nghĩa là tên lớp có thể được truy cập bằng mẫu sau moduleName.ClassName nơi đây
Để phương thức này hoạt động, trước tiên bạn cần thực hiện lệnh nhập import moduleName Cách gọi lớp này cũng được dùng trong trường hợp kế thừa lớp này Ví dụ. Hình 1 cho thấy cuộc gọi đến phương thức Show() của Xin chào . Module1 from the code of Module2. Hình 1. Tham chiếu đến lớp Xin chào từ một mô-đun khác Sau khi chạy “Module2. py” , kết quả sau đây sẽ được hiển thị Module1.Hello.Show 2. Tham chiếu đến một lớp từ một mô-đun khác. Phương pháp 2Với phương pháp này, lớp của mô-đun khác có thể được truy cập mà không cần sử dụng tên mô-đun ở phía trước tên lớp (xem phương pháp trước). Trong trường hợp này, bạn cần sử dụng kết hợp các lệnh from và import theo mẫu sau from moduleName import ClassName nơi đây
Sau kết nối này, bạn có thể tham khảo Tên Lớp mà không cần chỉ định tên mô-đun ở phía trước. Ví dụ. Hình 2 cho thấy một ví dụ về cách truy cập lớp Triangle mà không sử dụng tên Module1. Hình 2. Một cách để truy cập tên lớp bằng cách sử dụng kết hợp các chỉ thị từ nhập directives 3. Trường hợp class và module trùng tênĐôi khi một mô-đun và một lớp trong đó có cùng tên. Sau đó, để truy cập tên lớp bằng phương pháp 1 (xem p. 1), bạn phải thêm tiền tố vào tên mô-đun Nếu bạn không chỉ định tên mô-đun, một ngoại lệ sẽ được đưa ra. Một tên duy nhất được trình thông dịch hiểu là tên mô-đun, không phải tên lớp. Ví dụ sau giải thích điểm này Ví dụ. Hình tròn. mô-đun py được xác định, thực hiện lớp Circle class # Module circle.py # The class that defines the circle import math class Circle: # Initial initialization method def __init__(sl, x, y, r): sl.x = x sl.y = y sl.r = r # Returns the area of a circle def Area(sl): return math.pi*sl.r*sl.r Sau đó, để sử dụng lớp Circle trong một mô-đun khác, bạn cần chỉ định tên mô-đun khi đề cập đến tên của nó. ________số 8_______Kết quả của chương trình area = 78.53981633974483 Nếu trong dòng obj = circle.Circle (2, 3, 5) xóa tên của vòng kết nối mô-đun obj = Circle (2, 3, 5) sau đó một ngoại lệ sẽ được ném 4. Trường hợp các mô-đun có các lớp trùng tênNếu một lớp được khai báo trong một mô-đun bao gồm có tên trùng với tên của lớp của mô-đun hiện tại, thì quy tắc sau sẽ được áp dụng
Ví dụ. Trong ví dụ này, các lớp có cùng tên được khai báo trong các mô-đun khác nhau. Đối với trường hợp như vậy, cách chính xác để sử dụng lớp của mô-đun khác được trình bày Văn bản của module1. mô-đun py . # A module named module1.py # The module declares a class named A class A: # Some class method def A(self): print("Module1: A.A()") Văn bản của module2. mô-đun py . Mô-đun này trình bày cách truy cập lớp A của mô-đun1. p . import moduleName 0Nếu thay vì dòng import moduleName 1bạn gõ import moduleName 2sau đó trong dòng import moduleName 3sẽ báo lỗi import moduleName 4Sau khi khởi động chương trình sẽ cho kết quả như sau import moduleName 55. Các quy ước chung để đặt tên cho các mô-đun và lớpKhi viết các dự án lớn có chứa một số lượng lớn các mô-đun và lớp, việc xác định chính xác là rất quan trọng. Do đó, Python có một quy ước nhất quán cho tên lớp và mô-đun Sự khác biệt giữa mô-đun và lớp là gì?Sự khác biệt giữa lớp và mô-đun là gì? . Modules are collections of methods and constants. Chúng không thể tạo phiên bản. Các lớp có thể tạo ra các thể hiện (đối tượng) và có trạng thái cho mỗi thể hiện (các biến thể hiện) .
Các mô-đun python có thể có các lớp không?Mô-đun Python về cơ bản là một tệp tập lệnh python có thể chứa các biến, hàm và lớp . |