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.

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.

Làm thế nào các mô-đun được viết bằng Python?

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

Làm thế nào các mô-đun được viết bằng Python?

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ô-đun

Cho đế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 RA

3.141592653589793

math.sin(math.pi/2)

ĐẦU RA

1.0

math.cos(math.pi/2)

ĐẦU RA

6.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.pi
0

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.pi
1

ĐẦU RA

math.pi
2

math.pi
3

ĐẦU RA

math.pi
4

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.pi
5

ĐẦU RA

math.pi
6

math.pi
7

ĐẦU RA

math.pi
8

Hãy sửa đổi ví dụ trước một chút bằng cách thay đổi thứ tự nhập

math.pi
9

ĐẦU RA

math.pi
6

math.pi
7

ĐẦU RA

math.pi
8

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.141592653589793
3

nhập khẩu với nó như luật bất thành văn

3.141592653589793
4

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.141592653589793
5

ĐẦU RA

3.141592653589793
6

Thiết kế và viết mô-đun

Như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.141592653589793
7

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.141592653589793
8

ĐẦU RA

3.141592653589793
9

math.sin(math.pi/2)
0

ĐẦU RA

math.sin(math.pi/2)
1

math.sin(math.pi/2)
2

ĐẦU RA

math.sin(math.pi/2)
3

math.sin(math.pi/2)
4

ĐẦU RA

math.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 RA

math.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

Làm thế nào các mô-đun được viết bằng Python?

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ô-đun

Thô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 RA

math.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.0
0

ĐẦU RA

math.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.0
2

Đ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.0
0

1.0
4

ĐẦU RA

1.0
5

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.0
6

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.0
7

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ô-đun

Tê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.0
8

ĐẦU RA

1.0
9

Đ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

Làm thế nào các mô-đun được viết bằng Python?

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ệnh

Về 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 Namespace

Trong 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 RA

math.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 RA

math.cos(math.pi/2)
8

math.cos(math.pi/2)
9

ĐẦU RA

6.123233995736766e-17
0

Đào tạo Python trực tiếp

Làm thế nào các mô-đun được viết bằng Python?

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ô-đun

Có nhiều loại mô-đun khác nhau

  • Những thứ được viết bằng Python
    Họ có hậu tố. . py
  • Các mô-đun C được liên kết động
    hậu tố là. . dll,. người lớn,. Vì thế,. xin lỗi,
  • C-Modules được liên kết với Thông dịch viên
    Có thể lấy danh sách đầy đủ các mô-đun này

6.123233995736766e-17
1

ĐẦU RA

6.123233995736766e-17
2

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ô-đun

Nế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-17
3

Có thể tìm ra vị trí của một mô-đun sau khi nó đã được nhập

6.123233995736766e-17
4

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-17
5

ĐẦU RA

6.123233995736766e-17
6

Đào tạo Python trực tiếp

Làm thế nào các mô-đun được viết bằng Python?

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ô-đun

Vớ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-17
7

ĐẦU RA

6.123233995736766e-17
8

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-17
9

ĐẦU RA

math.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 RA

math.cos(math.pi)
2

gói

Nế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.