Làm thế nào các mô-đun được viết bằng Python?
Lập trình mô-đun là một kỹ thuật thiết kế phần mềm, dựa trên nguyên tắc chung của thiết kế mô-đun. Thiết kế mô-đun là một cách tiếp cận đã được chứng minh là không thể thiếu trong kỹ thuật ngay cả trước khi có những chiếc máy tính đầu tiên. Thiết kế mô-đun có nghĩa là một hệ thống phức tạp được chia thành các bộ phận hoặc thành phần nhỏ hơn. e. mô-đun. Các thành phần này có thể được tạo và thử nghiệm độc lập. Trong nhiều trường hợp, chúng thậm chí có thể được sử dụng trong các hệ thống khác. Show
Hầu như không có sản phẩm nào hiện nay không phụ thuộc nhiều vào mô đun hóa, như ô tô và điện thoại di động. Máy tính thuộc về những sản phẩm được mô đun hóa đến mức tối đa. Vì vậy, điều bắt buộc đối với phần cứng là điều tất yếu đối với phần mềm chạy trên máy tính. Nếu bạn muốn phát triển các chương trình có thể đọc được, đáng tin cậy và có thể bảo trì mà không tốn quá nhiều công sức, bạn phải sử dụng một số kiểu thiết kế phần mềm mô-đun. Đặc biệt nếu ứng dụng của bạn có kích thước nhất định. Tồn tại nhiều khái niệm để thiết kế phần mềm ở dạng mô-đun. Lập trình mô-đun là một kỹ thuật thiết kế phần mềm để chia mã của bạn thành các phần riêng biệt. Những phần này được gọi là mô-đun. Trọng tâm của sự tách biệt này là phải có các mô-đun không có hoặc chỉ có một vài phụ thuộc vào các mô-đun khác. Nói cách khác. Giảm thiểu sự phụ thuộc là mục tiêu. Khi tạo một hệ thống mô-đun, một số mô-đun được xây dựng riêng biệt và ít nhiều độc lập. Ứng dụng thực thi sẽ được tạo bằng cách ghép chúng lại với nhau Đào tạo Python trực tiếp Thưởng thức trang này? Thấy. Tổng quan về các khóa học Python trực tiếp đăng ký tại đây Nhập mô-đunCho đến nay chúng tôi vẫn chưa giải thích mô-đun Python là gì. Tóm lại. mọi tệp có phần mở rộng tệp. py và bao gồm mã Python thích hợp, có thể được nhìn thấy hoặc là một mô-đun. Không có cú pháp đặc biệt cần thiết để biến một tệp như vậy thành một mô-đun. Một mô-đun có thể chứa các đối tượng tùy ý, ví dụ như tệp, lớp hoặc thuộc tính. Tất cả các đối tượng đó có thể được truy cập sau khi nhập. Có nhiều cách khác nhau để nhập một mô-đun. Chúng tôi chứng minh điều này với mô-đun toán học import math Mô-đun toán học cung cấp các hằng số và hàm toán học, e. g. π (toán. pi), hàm sin (toán. sin()) và hàm cosin (toán. cos()). Mọi thuộc tính hoặc chức năng chỉ có thể được truy cập bằng cách đặt "math. " phía trước tên math.pi ĐẦU RA3.141592653589793 math.sin(math.pi/2) ĐẦU RA1.0 math.cos(math.pi/2) ĐẦU RA6.123233995736766e-17 math.cos(math.pi) ĐẦU RA________số 8_______ Có thể nhập nhiều mô-đun trong một câu lệnh nhập. Trong trường hợp này, các tên mô-đun được phân tách bằng dấu phẩy import math, random các câu lệnh nhập có thể được định vị ở bất kỳ đâu trong chương trình, nhưng tốt nhất là đặt chúng trực tiếp ở đầu chương trình Nếu chỉ cần một số đối tượng nhất định của mô-đun, chúng ta chỉ có thể nhập những đối tượng đó math.pi0 Các đối tượng khác, e. g. cos, không có sẵn sau lần nhập này. Chúng tôi có khả năng truy cập trực tiếp vào sin và pi, tôi. e. mà không thêm tiền tố với "math. " Thay vì nhập một cách rõ ràng các đối tượng nhất định từ một mô-đun, bạn cũng có thể nhập mọi thứ trong không gian tên của mô-đun nhập. Điều này có thể đạt được bằng cách sử dụng dấu hoa thị trong quá trình nhập math.pi1 ĐẦU RAmath.pi2 math.pi3 ĐẦU RAmath.pi4 Không nên sử dụng ký hiệu dấu hoa thị trong câu lệnh nhập, trừ khi làm việc trong trình bao Python tương tác. Một lý do là nguồn gốc của một cái tên có thể khá mơ hồ, bởi vì nó không thể nhìn thấy nó có thể đã được nhập từ mô-đun nào. Chúng tôi sẽ chứng minh một biến chứng nghiêm trọng khác trong ví dụ sau math.pi5 ĐẦU RAmath.pi6 math.pi7 ĐẦU RAmath.pi8 Hãy sửa đổi ví dụ trước một chút bằng cách thay đổi thứ tự nhập math.pi9 ĐẦU RAmath.pi6 math.pi7 ĐẦU RAmath.pi8 Mọi người sử dụng ký hiệu dấu hoa thị, vì nó rất thuận tiện. Nó có nghĩa là tránh được rất nhiều đánh máy tẻ nhạt. Một cách khác để giảm nỗ lực đánh máy là đổi tên một không gian tên. Một ví dụ điển hình cho điều này là mô-đun numpy. Bạn sẽ khó tìm thấy ví dụ hoặc hướng dẫn trong đó họ sẽ nhập mô-đun này bằng câu lệnh 3.1415926535897933 nhập khẩu với nó như luật bất thành văn 3.1415926535897934 Bây giờ bạn có thể đặt tiền tố cho tất cả các đối tượng của numpy bằng "np. " thay vì" numpy. " 3.1415926535897935 ĐẦU RA3.1415926535897936 Thiết kế và viết mô-đunNhưng làm cách nào để chúng ta tạo các mô-đun trong Python? . Tên mô-đun được tách ra khỏi tên tệp bằng cách xóa hậu tố. py. Ví dụ: nếu tên tệp là fibonacci. py, tên mô-đun là fibonacci Hãy biến các hàm Fibonacci của chúng ta thành một mô-đun. Hầu như không có gì phải làm, chúng tôi chỉ lưu đoạn mã sau vào tệp fibonacci. py 3.1415926535897937 Mô-đun "fibonacci" mới được tạo đã sẵn sàng để sử dụng ngay bây giờ. Chúng tôi có thể nhập mô-đun này giống như bất kỳ mô-đun nào khác trong chương trình hoặc tập lệnh. Chúng tôi sẽ chứng minh điều này trong trình bao Python tương tác sau đây 3.1415926535897938 ĐẦU RA3.1415926535897939 math.sin(math.pi/2)0 ĐẦU RAmath.sin(math.pi/2)1 math.sin(math.pi/2)2 ĐẦU RAmath.sin(math.pi/2)3 math.sin(math.pi/2)4 ĐẦU RAmath.sin(math.pi/2)5 Đừng cố gọi phiên bản đệ quy của hàm Fibonacci với các đối số lớn như chúng ta đã làm với phiên bản lặp lại. Một giá trị như 42 đã quá lớn. Bạn sẽ phải chờ đợi trong một thời gian dài Như bạn có thể dễ dàng tưởng tượng. Thật khó chịu nếu bạn phải sử dụng các chức năng đó thường xuyên trong chương trình của mình và bạn luôn phải nhập tên đủ điều kiện, tôi. e. fibonacci. sợi(7). Một giải pháp bao gồm gán tên cục bộ cho chức năng mô-đun để có tên ngắn hơn math.sin(math.pi/2)6 ĐẦU RAmath.sin(math.pi/2)7 Nhưng sẽ tốt hơn nếu bạn nhập trực tiếp các chức năng cần thiết vào mô-đun của mình, như chúng tôi sẽ trình bày sâu hơn trong chương này Đào tạo Python trực tiếp Thưởng thức trang này? Thấy. Tổng quan về các khóa học Python trực tiếp Các khóa học trực tuyến sắp tới Khái niệm cơ bản về Python cho người mới bắt đầu Khóa học nâng cao chuyên sâu Python dành cho kỹ sư và nhà khoa học Lập trình hướng đối tượng với Python đăng ký tại đây Tìm hiểu thêm về các mô-đunThông thường, các mô-đun chứa các hàm hoặc lớp, nhưng cũng có thể có các câu lệnh "đơn giản" trong đó. Những câu lệnh này có thể được sử dụng để khởi tạo mô-đun. Chúng chỉ được thực thi khi mô-đun được nhập Hãy xem xét một mô-đun chỉ bao gồm một câu lệnh math.sin(math.pi/2)8 ĐẦU RAmath.sin(math.pi/2)9 Chúng tôi lưu với tên "one_time. py" và nhập nó hai lần trong một phiên tương tác 1.00 ĐẦU RAmath.sin(math.pi/2)9 Chúng ta có thể thấy rằng nó chỉ được nhập một lần. Mỗi mô-đun chỉ có thể được nhập một lần cho mỗi phiên phiên dịch hoặc trong một chương trình hoặc tập lệnh. Nếu bạn thay đổi một mô-đun và nếu bạn muốn tải lại mô-đun đó, bạn phải khởi động lại trình thông dịch. Trong Python 2. x, có thể nhập lại mô-đun bằng cách sử dụng tính năng tải lại tích hợp sẵn, tôi. e. tải lại (tên mô-đun) 1.02 Điều này không thể thực hiện được nữa trong Python 3. x. Bạn sẽ gây ra lỗi sau 1.00 1.04 ĐẦU RA1.05 Kể từ Python 3. 0 chức năng tải lại tích hợp đã được chuyển vào mô-đun thư viện tiêu chuẩn imp. Vì vậy, vẫn có thể tải lại tệp như trước, nhưng chức năng phải được nhập. Bạn phải thực hiện lệnh "nhập imp" và sử dụng imp. tải lại (my_module). Ngoài ra, bạn có thể sử dụng "imp import reload" và sử dụng reload(my_module) Ví dụ với tải lại cách Python3 1.06 Kể từ phiên bản 3. 4, bạn nên sử dụng mô-đun "importlib", vì imp. tải lại được đánh dấu là không dùng nữa 1.07 Một mô-đun có một bảng ký hiệu riêng, được sử dụng làm bảng ký hiệu chung bởi tất cả các chức năng được xác định trong mô-đun. Đây là một cách để ngăn biến toàn cục của mô-đun vô tình xung đột với biến toàn cục có cùng tên của người dùng. Các biến toàn cục của một mô-đun có thể được truy cập bằng ký hiệu giống như các hàm, i. e. tên mod. tên Một mô-đun có thể nhập các mô-đun khác. Theo thông lệ, tất cả các câu lệnh nhập đều được đặt ở đầu mô-đun hoặc tập lệnh Nhập trực tiếp tên từ một mô-đunTên từ một mô-đun có thể được nhập trực tiếp vào bảng ký hiệu của mô-đun nhập 1.08 ĐẦU RA1.09 Điều này không giới thiệu tên mô-đun mà quá trình nhập được thực hiện trong bảng ký hiệu cục bộ. Có thể nhưng không nên nhập tất cả các tên được xác định trong một mô-đun, ngoại trừ những tên bắt đầu bằng dấu gạch dưới "_" math.cos(math.pi/2)0 Điều này không nên được thực hiện trong các tập lệnh nhưng có thể sử dụng nó trong các phiên tương tác để tiết kiệm việc nhập Đào tạo Python trực tiếp Thưởng thức trang này? Thấy. Tổng quan về các khóa học Python trực tiếp đăng ký tại đây Thực thi các mô-đun dưới dạng tập lệnhVề cơ bản, một mô-đun Python là một tập lệnh, vì vậy nó có thể chạy dưới dạng tập lệnh math.cos(math.pi/2)1 Mô-đun đã được bắt đầu dưới dạng tập lệnh sẽ được thực thi như thể nó đã được nhập, nhưng với một ngoại lệ. Tên biến hệ thống được đặt thành "chính". Vì vậy, có thể lập trình các hành vi khác nhau thành một mô-đun cho hai trường hợp. Với câu lệnh điều kiện sau, tệp có thể được sử dụng dưới dạng mô-đun hoặc tập lệnh, nhưng chỉ khi nó được chạy dưới dạng tập lệnh, phương thức fib sẽ được bắt đầu bằng đối số dòng lệnh math.cos(math.pi/2)2 Nếu nó được chạy dưới dạng tập lệnh, chúng tôi sẽ nhận được đầu ra sau math.cos(math.pi/2)3 Nếu nó được nhập, mã trong khối if sẽ không được thực thi math.cos(math.pi/2)4 Đổi tên một NamespaceTrong khi nhập một mô-đun, tên của không gian tên có thể được thay đổi math.cos(math.pi/2)5 ĐẦU RAmath.cos(math.pi/2)6 Sau lần nhập này, tồn tại toán học không gian tên nhưng không có toán học không gian tên. Có thể nhập chỉ một vài phương thức từ một mô-đun math.cos(math.pi/2)7 ĐẦU RAmath.cos(math.pi/2)8 math.cos(math.pi/2)9 ĐẦU RA6.123233995736766e-170 Đào tạo Python trực tiếp Thưởng thức trang này? Thấy. Tổng quan về các khóa học Python trực tiếp đăng ký tại đây Các loại mô-đunCó nhiều loại mô-đun khác nhau
6.123233995736766e-171 ĐẦU RA6.123233995736766e-172 Một thông báo lỗi được trả về cho Mô-đun tích hợp Đường dẫn tìm kiếm mô-đunNếu bạn nhập một mô-đun, giả sử "nhập xyz", trình thông dịch sẽ tìm kiếm mô-đun này ở các vị trí sau và theo thứ tự đã cho 6.123233995736766e-173 Có thể tìm ra vị trí của một mô-đun sau khi nó đã được nhập 6.123233995736766e-174 nhập ngẫu nhiên ngẫu nhiên. tệp '/usr/lib/python3. 5/ngẫu nhiên. py' Thuộc tính tệp không phải lúc nào cũng tồn tại. Đây là trường hợp với các mô-đun được liên kết tĩnh các thư viện C 6.123233995736766e-175 ĐẦU RA6.123233995736766e-176 Đào tạo Python trực tiếp Thưởng thức trang này? Thấy. Tổng quan về các khóa học Python trực tiếp đăng ký tại đây Nội dung của một mô-đunVới chức năng tích hợp sẵn dir() và tên của mô-đun làm đối số, bạn có thể liệt kê tất cả các thuộc tính và phương thức hợp lệ cho mô-đun đó 6.123233995736766e-177 ĐẦU RA6.123233995736766e-178 Gọi dir() mà không có đối số, một danh sách có tên trong phạm vi cục bộ hiện tại được trả về 6.123233995736766e-179 ĐẦU RAmath.cos(math.pi)0 Có thể lấy danh sách các Hàm tích hợp, ngoại lệ và các đối tượng khác bằng cách nhập mô-đun nội dung math.cos(math.pi)1 ĐẦU RAmath.cos(math.pi)2 góiNếu bạn đã tạo nhiều mô-đun tại một thời điểm nào đó, bạn có thể mất cái nhìn tổng quan về chúng. Bạn có thể có hàng chục hoặc hàng trăm mô-đun và chúng có thể được phân loại thành các danh mục khác nhau. Nó tương tự như tình huống trong một hệ thống tập tin. Thay vì chứa tất cả các tệp chỉ trong một thư mục, bạn đặt chúng vào các thư mục khác nhau, được sắp xếp theo chủ đề của tệp. Chúng tôi sẽ trình bày trong chương tiếp theo của hướng dẫn Python cách tổ chức các mô-đun thành các gói Các mô-đun Python được viết bằng gì?Các mô-đun tích hợp này được viết bằng ngôn ngữ C và được tích hợp với trình bao Python. . print() và input() cho I/O, Các hàm chuyển đổi số như int(), float(), complex(), Chuyển đổi kiểu dữ liệu như list(), tuple(), set(), v.v. Làm thế nào các mô-đun được tạo trong Python?Tạo và nhập mô-đun
. A module is simply a Python file with a . py tiện ích mở rộng có thể được nhập bên trong chương trình Python khác . Tên của tệp Python trở thành tên mô-đun. Mô-đun chứa các định nghĩa và triển khai các lớp, biến và hàm có thể được sử dụng bên trong chương trình khác.
Các mô-đun Python có được viết bằng Python không?Thư viện chứa các mô-đun dựng sẵn (được viết bằng C) cung cấp quyền truy cập vào chức năng hệ thống, chẳng hạn như tệp I/O mà các lập trình viên Python không thể truy cập được, cũng như . that provide standardized solutions for many problems that occur in everyday programming.
Cấu trúc của mô-đun Python là gì?Một mô-đun Python là tệp chứa các định nghĩa và câu lệnh Python . Một mô-đun có thể định nghĩa các hàm, lớp và biến. Một mô-đun cũng có thể bao gồm mã có thể chạy được. Nhóm mã liên quan vào một mô-đun giúp mã dễ hiểu và dễ sử dụng hơn. |