Tải lại mô-đun python

Đơn giản, một mô-đun là một tệp bao gồm mã lệnh Python. Trong module có thể bao gồm hàm, lớp, biến, khối lệnh

Ví dụ

Đoạn lệnh Python after nằm trong mô-đun có tên hỗ trợ thường nằm trong tệp có tên hỗ trợ. py

def print_func(par):
   print("Hello:", par)
   return

câu lệnh nhập khẩu

Bạn có thể sử dụng bất kỳ nguồn tệp Python nào làm mô-đun bằng cách thực hiện nhập câu lệnh trong một số nguồn tệp Python khác. Cú pháp sau

import module1[, module2[,.. moduleN]

Khi trình thông dịch gặp một câu lệnh nhập, nó sẽ nhập mô-đun nếu mô-đun có trong đường dẫn tìm kiếm. Đường dẫn tìm kiếm là danh sách các thư mục mà trình thông tin dịch vụ tìm kiếm trước khi đưa vào mô-đun. Ví dụ. để đưa vào hỗ trợ mô-đun. py, you need to set the command after at the command file

# Import module support
import support

#Giờ ta có thể gọi hàm có trong module như sau:
support.print_func("Zara")

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau

Hello : Zara

Mô-đun chỉ được tải xuống một lần, bất kể số lần nó được đưa vào là bao nhiêu. Điều này sẽ ngăn việc thực thi mô-đun lặp đi lặp lại nếu có nhiều lần thực thi nhập xảy ra

Câu lệnh từ. nhập khẩu

Lệnh từ của Python cho phép bạn nhập các thuộc tính công cụ có thể từ một mô-đun vào không gian tên hiện tại. Cú pháp như sau

from tên_module import name1[, name2[, .. nameN]]

Ví dụ. để nhập hàm fibonacci() từ mô-đun fib không có giới hạn, hãy sử dụng câu lệnh sau

from fib import fibonacci

Câu lệnh này không nhập toàn bộ sợi mô đun mô-đun vào không gian tên hiện tại;

Câu lệnh từ. nhập khẩu *

Ta cũng có thể nhập tất cả các tên từ một mô-đun vào không gian tên hiện tại bằng cách sử dụng câu lệnh nhập sau

from tên_module import *

Điều này sẽ cung cấp một cách dễ dàng để nhập tất cả các mục từ một mô-đun vào không gian tên hiện tại;

Vị trí mô-đun

Khi bạn nhập một mô-đun, trình dịch Python sẽ tìm kiếm mô-đun theo trình tự sau

  • Thư mục hiện tại
  • Nếu không tìm thấy mô-đun, thì Python sẽ tìm kiếm từng thư mục trong biến shell PYTHONPATH
  • If failed, Python will check default route. Trên UNIX, đường dẫn mặc định này thường là /usr/local/lib/python/

Đường dẫn tìm kiếm mô-đun được lưu trữ trong hệ thống mô-đun hệ thống dưới dạng biến đổi hệ thống. đường dẫn. biến hệ thống. đường dẫn chứa thư mục hiện tại, PYTHONPATH và giá trị mặc định phụ thuộc vào cài đặt

Biến PYTHONPATH

PYTHONPATH là một môi trường biến, bao gồm một danh sách các thư mục. Cú pháp của PYTHONPATH giống như cú pháp của biến shell PATH

Dưới đây có thể hiển thị một điển hình PYTHONPATH từ hệ thống Windows

set PYTHONPATH = c:\python20\lib;

Còn bên dưới đây là một PYTHONPATH dictionary dictionary từ hệ thống UNIX

________số 8

Namespace and range

Biến là tên (định danh) ánh xạ tới các đối tượng. Không gian tên là từ điển của các biến tên (khóa) và các đối tượng (giá trị) tương ứng của chúng

Một câu lệnh Python có thể truy cập các biến trong không gian tên bộ cục bộ và trong không gian tên chung. Nếu một biến cục bộ và một biến toàn cục có cùng tên, thì biến cục bộ sẽ phủ bóng lên biến toàn cục, hay nói cách khác biến cục bộ sẽ được ưu tiên sử dụng.

Mỗi hàm không có tên miền cục bộ riêng của nó. Các lớp phương thức thừa hành theo quy tắc xác định phạm vi giống như các hàm thông thường

Python đưa ra các phỏng đoán về các biến là cục bộ hay toàn cục. Người ta cho rằng bất kỳ biến nào được gán giá trị trong một hàm là bộ cục bộ .

Do đó, để gán giá trị cho một biến toàn cục trong một hàm, trước tiên bạn phải sử dụng câu lệnh toàn cầu

Câu lệnh varName toàn cầu cho Python biết rằng VarName là một biến toàn cục. Khi đó Python sẽ tiếp tục tìm kiếm không gian tên cục bộ cho biến

Ví dụ, ta định nghĩa một biến tiền trong không gian tên chung. Trong hàm Tiền, ta gán cho Tiền một giá trị, do đó Python hiểu Tiền là một biến cục bộ. Tuy nhiên, ta đã truy cập giá trị của biến cục bộ Money trước khi đặt giá trị cho nó, vì vậy kết quả là một lỗi xảy ra, UnboundLocalError. Ở đoạn mã bên dưới, bạn bỏ chú thích ở câu lệnh chung sẽ giải quyết được sự cố

Money = 2000
def AddMoney():
   # Uncomment the following line to fix the code:
   # global Money
   Money = Money + 1

print Money
AddMoney()
print Money

Hàm dir()

Hàm tổng hợp dir() trả về một danh sách các chuỗi đã được sắp xếp có chứa các tên được định nghĩa bởi một mô-đun

Danh sách chứa tên của tất cả các mô-đun, biến và hàm được định nghĩa trong một mô-đun. Sau đây là một ví dụ đơn giản

import module1[, module2[,.. moduleN]
0

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau

import module1[, module2[,.. moduleN]
1

Tại đây, biến chuỗi đặc biệt __name__ là tên của mô-đun và __file__ là tên tệp mà mô-đun đó đã được tải xuống từ đó

Các hàm global() và local()

Các hàm globals() và locals() có thể được sử dụng để trả về các tên trong không gian tên toàn cục và bộ cục bộ tùy thuộc vào vị trí mà chúng được gọi

Nếu locals() được gọi từ bên trong một hàm, nó sẽ trả về tất cả các tên có thể được truy cập cục bộ từ hàm đó

Nếu globals() được gọi từ bên trong một hàm, thì nó sẽ trả về tất cả các tên có thể được truy cập trên toàn cục từ hàm đó

Kiểu trả về của cả hai hàm này là từ điển (dictionary). Do đó, các tên có thể được trích xuất bằng cách sử dụng hàm key()

Hàm tải lại()

Nhắc lại rằng khi mô-đun được nhập vào một tập lệnh, thì mã trong phần cấp cao nhất của mô-đun chỉ được thực thi một lần

Làm như vậy, nếu bạn muốn thực thi lại mã cấp cao nhất trong mô-đun mô-đun, bạn có thể sử dụng hàm reload(). Hàm reload() sẽ nhập lại mô-đun đã nhập trước đó. Cú pháp của hàm reload() là

import module1[, module2[,.. moduleN]
2

Tại đây, module_name là tên của mô-đun bạn muốn tải xuống và không phải là chuỗi chứa tên mô-đun. Ví dụ. để tải lại mô-đun xin chào, hãy làm như sau

import module1[, module2[,.. moduleN]
3

Các gói trong Python

Gói là một cấu trúc thư mục phân cấp cấu trúc xác định một môi trường ứng dụng Python duy nhất bao gồm các mô-đun mô-đun và các gói con và gói cháu, v. v

Select a Pots. py có sẵn trong thư mục Điện thoại. This file has the following source code

import module1[, module2[,.. moduleN]
4

Theo cách tương tự, chúng ta có hai tệp khác nhau có chức năng khác nhau có cùng tên như trên

  • File Phone/Isdn. py có hàm Isdn()
  • File Phone/G3. py có hàm G3()

Bây giờ, hãy tạo thêm tệp __init__. py in thư mục Phone

  • Điện thoại/__init__. py

Để cung cấp tất cả các chức năng khi nhập Điện thoại, ta cần đặt câu lệnh nhập rõ ràng trong __init__. py as after

import module1[, module2[,.. moduleN]
5

Sau khi bạn thêm các dòng này vào __init__. py, bạn sẽ có tất cả các lớp này khi nhập gói Điện thoại

import module1[, module2[,.. moduleN]
6

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau

import module1[, module2[,.. moduleN]
7

Trong ví dụ trên, ta đã lấy ví dụ về một hàm duy nhất trong mỗi tệp, nhưng bạn có thể giữ nhiều hàm trong tệp của mình. Bạn cũng có thể xác định các lớp Python khác nhau trong các tệp đó và sau đó bạn có thể tạo các gói của mình từ các lớp đó