Làm cách nào để kiểm tra xem mô-đun python có tồn tại mà không nhập nó không?

Một là cung cấp việc triển khai câu lệnh

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1 [và do đó, bằng cách mở rộng, hàm
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
4] trong mã nguồn Python. Điều này cung cấp một triển khai của
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1 có thể di chuyển tới bất kỳ trình thông dịch Python nào. Điều này cũng cung cấp một cách triển khai dễ hiểu hơn so với cách triển khai bằng ngôn ngữ lập trình khác ngoài Python

Thứ hai, các thành phần để triển khai

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1 được hiển thị trong gói này, giúp người dùng dễ dàng tạo các đối tượng tùy chỉnh của riêng họ [được gọi chung là trình nhập] to participate in the import process.

Thứ ba, gói chứa các mô-đun hiển thị chức năng bổ sung để quản lý các khía cạnh của gói Python

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    7 trình bày quyền truy cập vào siêu dữ liệu từ các bản phân phối của bên thứ ba

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    8 cung cấp các quy trình để truy cập “tài nguyên” không mã từ các gói Python

Xem thêm

Báo cáo nhập khẩu

Tham chiếu ngôn ngữ cho câu lệnh

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1

đặc điểm kỹ thuật gói

Thông số kỹ thuật ban đầu của gói. Một số ngữ nghĩa đã thay đổi kể từ khi viết tài liệu này [e. g. chuyển hướng dựa trên ________ 70 trong ________ 71]

Hàm
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
4

Câu lệnh

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1 là đường cú pháp cho chức năng này

Khởi tạo hệ thống. đường dẫn tìm kiếm mô-đun đường dẫn

Khởi tạo của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
4

PEP 235

Nhập trên nền tảng không phân biệt chữ hoa chữ thường

PEP 263

Xác định mã hóa mã nguồn Python

PEP 302

Móc nhập khẩu mới

PEP 328

nhập khẩu. Đa dòng và Tuyệt đối/Tương đối

PEP 366

Mô-đun chính nhập khẩu tương đối rõ ràng

PEP 420

Gói không gian tên ẩn

PEP 451

Loại ModuleSpec cho Hệ thống nhập

PEP 488

Loại bỏ các tệp PYO

PEP 489

Khởi tạo mô-đun mở rộng nhiều pha

PEP 552

pyc xác định

PEP 3120

Sử dụng UTF-8 làm Mã hóa nguồn mặc định

PEP 3147

Thư mục kho lưu trữ PYC

Chức năng¶

importlib. __import__[tên , toàn cầu=None, locals=None, fromlist=[], level=0]

Việc triển khai chức năng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
4 tích hợp

Ghi chú

Nhập mô-đun theo chương trình nên sử dụng

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
6 thay vì chức năng này

importlib. import_module[tên , gói=None]

Nhập một mô-đun. Đối số tên chỉ định mô-đun nào sẽ nhập theo thuật ngữ tuyệt đối hoặc tương đối [e. g. hoặc là

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
7 hoặc là
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
8]. Nếu tên được chỉ định theo thuật ngữ tương đối, thì đối số gói phải được đặt thành tên của gói đóng vai trò là mỏ neo để giải quyết tên gói [e. g.
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
9 sẽ nhập khẩu
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
7]

Hàm

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
6 hoạt động như một trình bao bọc đơn giản hóa xung quanh
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
92. Điều này có nghĩa là tất cả ngữ nghĩa của hàm được lấy từ
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
92. Sự khác biệt quan trọng nhất giữa hai hàm này là
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
6 trả về gói hoặc mô-đun đã chỉ định [e. g.
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
7], trong khi
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
4 trả về gói hoặc mô-đun cấp cao nhất [e. g.
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
97]

Nếu bạn đang nhập động một mô-đun đã được tạo từ khi trình thông dịch bắt đầu thực thi [e. g. , đã tạo một tệp nguồn Python], bạn có thể cần phải gọi

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98 để hệ thống nhập nhận thấy mô-đun mới

Đã thay đổi trong phiên bản 3. 3. Các gói gốc được nhập tự động.

importlib. find_loader[tên , đường dẫn=None]

Tìm trình tải cho một mô-đun, tùy chọn trong đường dẫn đã chỉ định. Nếu mô-đun ở trong

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1, thì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
70 được trả về [trừ khi bộ nạp sẽ là
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 hoặc không được đặt, trong trường hợp đó,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72 được nâng lên]. Mặt khác, tìm kiếm bằng cách sử dụng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
73 được thực hiện.
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 được trả lại nếu không tìm thấy bộ nạp

Một tên chấm không có cha mẹ của nó được nhập ngầm vì điều đó yêu cầu tải chúng và điều đó có thể không được mong muốn. Để nhập đúng cách một mô hình con, bạn sẽ cần nhập tất cả các gói mẹ của mô hình con và sử dụng đối số chính xác cho đường dẫn

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 4. Nếu

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75 không được đặt, hãy tăng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72, giống như khi thuộc tính được đặt thành
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0.

Không dùng nữa kể từ phiên bản 3. 4. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
78 thay thế.

importlib. invalidate_caches[]

Vô hiệu hóa bộ đệm nội bộ của công cụ tìm được lưu trữ tại

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
73. Nếu một công cụ tìm thực hiện
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98 thì nó sẽ được gọi để thực hiện việc vô hiệu hóa. Chức năng này nên được gọi nếu bất kỳ mô-đun nào được tạo/cài đặt trong khi chương trình của bạn đang chạy để đảm bảo tất cả những người tìm thấy sẽ nhận thấy sự tồn tại của mô-đun mới

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 10. Các gói không gian tên được tạo/cài đặt ở một vị trí

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
4 khác sau khi cùng một không gian tên đã được nhập sẽ được chú ý.

importlib. tải lại[mô-đun]

Tải lại mô-đun đã nhập trước đó. Đối số phải là một đối tượng mô-đun, vì vậy nó phải được nhập thành công trước đó. Điều này hữu ích nếu bạn đã chỉnh sửa tệp nguồn mô-đun bằng trình chỉnh sửa bên ngoài và muốn dùng thử phiên bản mới mà không cần rời khỏi trình thông dịch Python. Giá trị trả về là đối tượng mô-đun [có thể khác nếu việc nhập lại khiến một đối tượng khác được đặt trong

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1]

Khi

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
03 được thực thi

  • Mã của mô-đun Python được biên dịch lại và mã cấp mô-đun được thực thi lại, xác định một nhóm đối tượng mới được liên kết với các tên trong từ điển của mô-đun bằng cách sử dụng lại trình tải . Chức năng

    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    04 của các mô-đun mở rộng không được gọi lần thứ hai. . Chức năng
    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    04 của các mô-đun mở rộng không được gọi lần thứ hai.
    . Chức năng
    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    04 của các mô-đun mở rộng không được gọi lần thứ hai.
    . Chức năng
    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    04 của các mô-đun mở rộng không được gọi lần thứ hai.
    . Chức năng
    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    04 của các mô-đun mở rộng không được gọi lần thứ hai.
    . Chức năng
    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    04 của các mô-đun mở rộng không được gọi lần thứ hai.
    which originally loaded the module. The
    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    04 function of extension modules is not called a second time.

  • Như với tất cả các đối tượng khác trong Python, các đối tượng cũ chỉ được lấy lại sau khi số tham chiếu của chúng giảm xuống 0

  • Tên trong không gian tên mô-đun được cập nhật để trỏ đến bất kỳ đối tượng mới hoặc thay đổi nào

  • Các tham chiếu khác đến các đối tượng cũ [chẳng hạn như các tên bên ngoài mô-đun] không được phục hồi để tham chiếu đến các đối tượng mới và phải được cập nhật trong mỗi không gian tên nơi chúng xuất hiện nếu muốn

Có một số lưu ý khác

Khi một mô-đun được tải lại, từ điển của nó [chứa các biến toàn cục của mô-đun] được giữ lại. Định nghĩa lại tên sẽ ghi đè định nghĩa cũ, vì vậy đây thường không phải là vấn đề. Nếu phiên bản mới của mô-đun không xác định tên đã được xác định bởi phiên bản cũ, thì định nghĩa cũ vẫn còn. Tính năng này có thể được sử dụng để tạo lợi thế cho mô-đun nếu nó duy trì một bảng toàn cầu hoặc bộ đệm của các đối tượng — với câu lệnh

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
05, nó có thể kiểm tra sự hiện diện của bảng và bỏ qua quá trình khởi tạo nếu muốn

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
3

Thường không hữu ích lắm khi tải lại các mô-đun tích hợp hoặc được tải động. Không nên tải lại

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
06,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
07,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
08 và các mô-đun chính khác. Trong nhiều trường hợp, các mô-đun mở rộng không được thiết kế để khởi tạo nhiều lần và có thể bị lỗi theo các cách tùy ý khi tải lại

Nếu một mô-đun nhập các đối tượng từ một mô-đun khác bằng cách sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
09…
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1…, thì việc gọi
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
03 cho mô-đun kia sẽ không xác định lại các đối tượng được nhập từ mô-đun đó — một cách giải quyết vấn đề này là thực hiện lại câu lệnh
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
09, một cách khác là sử dụng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1 và các tên đủ điều kiện . tên] thay vào đó

Nếu một mô-đun khởi tạo các thể hiện của một lớp, thì việc tải lại mô-đun định nghĩa lớp đó không ảnh hưởng đến các định nghĩa phương thức của các thể hiện — chúng tiếp tục sử dụng định nghĩa lớp cũ. Điều này cũng đúng với các lớp dẫn xuất

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 7. ______524 được nâng lên khi mô-đun được tải lại thiếu

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
25.

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
26 – Các lớp cơ sở trừu tượng liên quan đến nhập khẩu¶

Mã nguồn. Lib/nhậplib/abc. py

Mô-đun

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
26 chứa tất cả các lớp cơ sở trừu tượng cốt lõi được sử dụng bởi
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1. Một số lớp con của các lớp cơ sở trừu tượng cốt lõi cũng được cung cấp để giúp triển khai các ABC cốt lõi.

hệ thống phân cấp ABC

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader

lớp importlib. abc. Trình tìm kiếm

Một lớp cơ sở trừu tượng đại diện cho một công cụ tìm .

Không dùng nữa kể từ phiên bản 3. 3. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
29 hoặc
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
90 thay thế.

phương thức trừu tượng find_module[tên đầy đủ , path=None]

Một phương pháp trừu tượng để tìm trình tải cho mô-đun đã chỉ định. Ban đầu được chỉ định trong PEP 302, phương pháp này được dùng trong

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
73 và trong hệ thống con nhập dựa trên đường dẫn.

Đã thay đổi trong phiên bản 3. 4. Trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 khi được gọi thay vì tăng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93.

Không dùng nữa kể từ phiên bản 3. 10. Thay vào đó hãy triển khai

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
94 hoặc
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
95.

lớp importlib. abc. MetaPathFinder

Một lớp cơ sở trừu tượng đại diện cho công cụ tìm đường dẫn meta .

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 10. Không còn là phân lớp của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96.

find_spec[tên đầy đủ , đường dẫn, target=None]

Một phương pháp trừu tượng để tìm thông số kỹ thuật cho mô-đun đã chỉ định. Nếu đây là lần nhập cấp cao nhất, đường dẫn sẽ là

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0. Mặt khác, đây là tìm kiếm gói con hoặc mô-đun và đường dẫn sẽ là giá trị của
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98 từ gói chính. Nếu không thể tìm thấy thông số kỹ thuật, thì trả về
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0. Khi được chuyển vào,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
90 là một đối tượng mô-đun mà công cụ tìm có thể sử dụng để đưa ra dự đoán chính xác hơn về thông số kỹ thuật sẽ trả về.
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
91 có thể hữu ích cho việc triển khai cụ thể
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
92.

Mới trong phiên bản 3. 4

find_module[tên đầy đủ , đường dẫn]

Phương pháp cũ để tìm trình tải cho mô-đun đã chỉ định. Nếu đây là lần nhập cấp cao nhất, đường dẫn sẽ là

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0. Mặt khác, đây là tìm kiếm gói con hoặc mô-đun và đường dẫn sẽ là giá trị của
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98 từ gói chính. Nếu không tìm thấy bộ tải,
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 được trả về.

Nếu

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 được xác định, chức năng tương thích ngược sẽ được cung cấp

Đã thay đổi trong phiên bản 3. 4. Trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 khi được gọi thay vì tăng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93. Có thể sử dụng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 để cung cấp chức năng.

Không dùng nữa kể từ phiên bản 3. 4. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 để thay thế.

invalidate_caches[]

Một phương thức tùy chọn, khi được gọi, sẽ làm mất hiệu lực bất kỳ bộ đệm nội bộ nào được sử dụng bởi công cụ tìm. Được sử dụng bởi

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
01 khi vô hiệu hóa bộ đệm của tất cả các công cụ tìm trên
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
73

Đã thay đổi trong phiên bản 3. 4. Trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 khi được gọi thay vì
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
04.

lớp importlib. abc. Trình tìm đường dẫn

Một lớp cơ sở trừu tượng đại diện cho công cụ tìm mục nhập đường dẫn . Mặc dù nó có một số điểm tương đồng với

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
29, nhưng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
90 chỉ được sử dụng trong hệ thống con nhập dựa trên đường dẫn do
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
07 cung cấp.

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 10. Không còn là phân lớp của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96.

find_spec[tên đầy đủ , mục tiêu=None]

Một phương pháp trừu tượng để tìm thông số kỹ thuật cho mô-đun đã chỉ định. Công cụ tìm sẽ chỉ tìm kiếm mô-đun trong mục nhập đường dẫn mà mô-đun được chỉ định. Nếu không thể tìm thấy thông số kỹ thuật, thì trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0. Khi được chuyển vào,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
90 là một đối tượng mô-đun mà công cụ tìm có thể sử dụng để đưa ra dự đoán chính xác hơn về thông số kỹ thuật sẽ trả về.
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
91 có thể hữu ích cho việc triển khai cụ thể
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
02.

Mới trong phiên bản 3. 4

find_loader[tên đầy đủ]

Phương pháp cũ để tìm trình tải cho mô-đun đã chỉ định. Trả về 2-tuple của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
03 trong đó
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
04 là một chuỗi các vị trí hệ thống tệp đóng góp vào một phần của gói không gian tên. Trình tải có thể là
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 trong khi chỉ định
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
04 để biểu thị sự đóng góp của các vị trí hệ thống tệp vào gói không gian tên. Một danh sách trống có thể được sử dụng cho
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
04 để biểu thị trình tải không phải là một phần của gói không gian tên. Nếu
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
08 là
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
04 là danh sách trống thì không tìm thấy bộ tải hoặc vị trí nào cho gói không gian tên [i. e. không tìm thấy bất cứ thứ gì cho mô-đun].

Nếu

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 được xác định thì chức năng tương thích ngược được cung cấp

Đã thay đổi trong phiên bản 3. 4. Trả về

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
12 thay vì tăng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93. Sử dụng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 khi có sẵn để cung cấp chức năng.

Không dùng nữa kể từ phiên bản 3. 4. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 để thay thế.

find_module[tên đầy đủ]

Việc triển khai cụ thể của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
16 tương đương với
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
17

Không dùng nữa kể từ phiên bản 3. 4. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 để thay thế.

invalidate_caches[]

Một phương thức tùy chọn, khi được gọi, sẽ làm mất hiệu lực bất kỳ bộ đệm nội bộ nào được sử dụng bởi công cụ tìm. Được sử dụng bởi

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
19 khi vô hiệu hóa bộ đệm của tất cả các công cụ tìm được lưu trong bộ đệm

lớp importlib. abc. Trình tải

Một lớp cơ sở trừu tượng cho trình tải . Xem PEP 302 để biết định nghĩa chính xác cho bộ nạp.

Các trình tải muốn hỗ trợ đọc tài nguyên nên triển khai phương pháp

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
20 như được chỉ định bởi
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
21

Đã thay đổi trong phiên bản 3. 7. Giới thiệu phương thức

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
20 tùy chọn.

create_module[spec]

Phương thức trả về đối tượng mô-đun để sử dụng khi nhập mô-đun. Phương thức này có thể trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0, cho biết rằng ngữ nghĩa tạo mô-đun mặc định sẽ diễn ra

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 6. Phương thức này không còn tùy chọn khi xác định

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24.

exec_module[module]

Một phương thức trừu tượng thực thi mô-đun trong không gian tên của chính nó khi một mô-đun được nhập hoặc tải lại. Mô-đun đã được khởi tạo khi

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24 được gọi. Khi phương thức này tồn tại,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
26 phải được xác định

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 6. ______026 cũng phải được xác định.

load_module[tên đầy đủ]

Một phương pháp cũ để tải một mô-đun. Nếu không thể tải mô-đun,

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 sẽ được nâng lên, nếu không, mô-đun đã tải sẽ được trả về

Nếu mô-đun được yêu cầu đã tồn tại trong

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1, mô-đun đó sẽ được sử dụng và tải lại. Mặt khác, trình tải nên tạo một mô-đun mới và chèn nó vào
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1 trước khi bất kỳ quá trình tải nào bắt đầu, để ngăn việc nhập đệ quy. Nếu bộ tải đã chèn một mô-đun và quá trình tải không thành công, bộ tải phải gỡ bỏ nó khỏi
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1;

Trình tải phải đặt một số thuộc tính trên mô-đun [lưu ý rằng một số thuộc tính này có thể thay đổi khi mô-đun được tải lại]

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    34

    Tên đầy đủ của mô-đun. Đó là

    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    35 cho một mô-đun đã thực thi

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    36

    Vị trí mà trình tải được sử dụng để tải mô-đun. Ví dụ: đối với các mô-đun được tải từ một. tệp py đây là tên tệp. Nó không được đặt trên tất cả các mô-đun [e. g. mô-đun tích hợp].

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    37

    Tên tệp của phiên bản đã biên dịch của mã mô-đun. Nó không được đặt trên tất cả các mô-đun [e. g. mô-đun tích hợp]

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    98

    Danh sách các vị trí nơi các mô hình con của gói sẽ được tìm thấy. Hầu hết thời gian đây là một thư mục duy nhất. Hệ thống nhập chuyển thuộc tính này tới

    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    4 và tới công cụ tìm theo cách tương tự như
    >>> from importlib.machinery import NamespaceLoader
    >>> import my_namespace
    >>> isinstance[my_namespace.__loader__, NamespaceLoader]
    True
    >>> import importlib.abc
    >>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
    True
    
    4 nhưng chỉ dành cho gói. Nó không được đặt trên các mô-đun không phải gói để nó có thể được sử dụng làm chỉ báo rằng mô-đun là một gói

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    41

    Tên đủ điều kiện của gói chứa mô-đun [hoặc chuỗi trống cho mô-đun cấp cao nhất]. Nếu mô-đun là một gói thì cái này giống như

    object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    34

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    75

    Trình tải loader được sử dụng để tải mô-đun.

Khi có sẵn

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24 thì chức năng tương thích ngược sẽ được cung cấp

Đã thay đổi trong phiên bản 3. 4. Tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 khi được gọi thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93. Chức năng được cung cấp khi có sẵn
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24.

Không dùng nữa kể từ phiên bản 3. 4. API được đề xuất để tải mô-đun là

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24 [và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
26]. Trình tải nên thực hiện nó thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
50. Máy móc nhập khẩu đảm nhận tất cả các trách nhiệm khác của
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
50 khi thực hiện
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24.

module_repr[module]

Một phương thức kế thừa mà khi được triển khai sẽ tính toán và trả về biểu diễn của mô-đun đã cho, dưới dạng một chuỗi. Loại mô-đun mặc định của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
53 sẽ sử dụng kết quả của phương pháp này khi thích hợp

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 4. Được tạo tùy chọn thay vì một phương thức trừu tượng.

Không dùng nữa kể từ phiên bản 3. 4. Máy móc nhập khẩu giờ đây sẽ tự động xử lý việc này.

lớp importlib. abc. Trình tải tài nguyên

Một lớp cơ sở trừu tượng dành cho trình tải triển khai giao thức PEP 302 tùy chọn để tải các tài nguyên tùy ý từ phần cuối của bộ lưu trữ.

Không dùng nữa kể từ phiên bản 3. 7. ABC này không được dùng nữa để hỗ trợ tải tài nguyên qua

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
21.

phương pháp trừu tượng get_data[đường dẫn]

Một phương thức trừu tượng để trả về các byte cho dữ liệu nằm ở đường dẫn. Các trình tải có back-end lưu trữ giống như tệp cho phép lưu trữ dữ liệu tùy ý có thể triển khai phương thức trừu tượng này để cấp quyền truy cập trực tiếp vào dữ liệu được lưu trữ.

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
55 sẽ được nâng lên nếu không tìm thấy đường dẫn. Đường dẫn dự kiến ​​sẽ được xây dựng bằng cách sử dụng thuộc tính
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
36 của mô-đun hoặc một mục từ
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98 của gói

Đã thay đổi trong phiên bản 3. 4. Tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
55 thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93.

lớp importlib. abc. InspectLoader

Một lớp cơ sở trừu tượng dành cho trình tải triển khai giao thức PEP 302 tùy chọn cho các trình tải kiểm tra mô-đun.

get_code[tên đầy đủ]

Trả về đối tượng mã cho một mô-đun hoặc

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 nếu mô-đun không có đối tượng mã [ví dụ như trường hợp đối với mô-đun tích hợp sẵn]. Tăng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 nếu trình tải không thể tìm thấy mô-đun được yêu cầu

Ghi chú

Mặc dù phương thức này có cách triển khai mặc định, nhưng bạn nên ghi đè phương thức này nếu có thể để đảm bảo hiệu suất

Đã thay đổi trong phiên bản 3. 4. Không còn trừu tượng nữa và cung cấp triển khai cụ thể.

phương thức trừu tượng get_source[tên đầy đủ]

Một phương thức trừu tượng để trả về nguồn của mô-đun. Nó được trả về dưới dạng một chuỗi văn bản bằng cách sử dụng dòng mới chung , dịch tất cả các dấu phân cách dòng được nhận dạng thành ký tự

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
62. Trả về
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 nếu không có nguồn [e. g. một mô-đun tích hợp]. Tăng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 nếu trình tải không thể tìm thấy mô-đun được chỉ định.

Đã thay đổi trong phiên bản 3. 4. Tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93.

is_package[tên đầy đủ]

Một phương thức tùy chọn để trả về giá trị thực nếu mô-đun là một gói, nếu không thì trả về giá trị sai.

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 được nâng lên nếu trình tải không thể tìm thấy mô-đun.

Đã thay đổi trong phiên bản 3. 4. Tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93.

tĩnh source_to_code[dữ liệu , path='']

Tạo một đối tượng mã từ nguồn Python

Đối số dữ liệu có thể là bất kỳ thứ gì mà hàm

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
70 hỗ trợ [i. e. chuỗi hoặc byte]. Đối số đường dẫn phải là “đường dẫn” đến nguồn gốc của mã nguồn, có thể là một khái niệm trừu tượng [e. g. vị trí trong tệp zip]

Với đối tượng mã tiếp theo, người ta có thể thực thi nó trong một mô-đun bằng cách chạy

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
71

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 5. Tạo phương thức tĩnh.

exec_module[module]

Thực hiện

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72

Mới trong phiên bản 3. 4

load_module[tên đầy đủ]

Thực hiện

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
73

Không dùng nữa kể từ phiên bản 3. 4. thay vào đó hãy sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24.

lớp importlib. abc. Trình tải thực thi

Một lớp cơ sở trừu tượng kế thừa từ

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75, khi được triển khai, sẽ giúp một mô-đun được thực thi dưới dạng tập lệnh. ABC đại diện cho một giao thức PEP 302 tùy chọn

phương thức trừu tượng get_filename[tên đầy đủ]

Một phương thức trừu tượng trả về giá trị của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
36 cho mô-đun đã chỉ định. Nếu không có đường dẫn,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 được nâng lên

Nếu mã nguồn có sẵn, thì phương thức sẽ trả về đường dẫn đến tệp nguồn, bất kể mã byte có được sử dụng để tải mô-đun hay không

Đã thay đổi trong phiên bản 3. 4. Tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93.

lớp importlib. abc. Trình tải tệp[tên đầy đủ , đường dẫn]

Một lớp cơ sở trừu tượng kế thừa từ

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
80 và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
81, cung cấp các triển khai cụ thể của
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
82 và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
83

Đối số tên đầy đủ là tên được giải quyết đầy đủ của mô-đun mà trình tải sẽ xử lý. Đối số đường dẫn là đường dẫn đến tệp cho mô-đun

Mới trong phiên bản 3. 3

tên

Tên của mô-đun mà trình tải có thể xử lý

đường dẫn

Đường dẫn đến tệp của mô-đun

load_module[tên đầy đủ]

Gọi siêu của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
50

Không dùng nữa kể từ phiên bản 3. 4. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72 thay thế.

phương thức trừu tượng get_filename[tên đầy đủ]

Trả lại

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
86

phương pháp trừu tượng get_data[đường dẫn]

Đọc đường dẫn dưới dạng tệp nhị phân và trả về các byte từ nó

lớp importlib. abc. Trình tải nguồn

Lớp cơ sở trừu tượng để triển khai tải tệp nguồn [và mã byte tùy chọn]. Lớp kế thừa từ cả

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
80 và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
81, yêu cầu triển khai

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    82

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    83

    Chỉ nên trả lại đường dẫn đến tệp nguồn;

Các phương thức trừu tượng được định nghĩa bởi lớp này là thêm hỗ trợ tệp mã byte tùy chọn. Việc không triển khai các phương thức tùy chọn này [hoặc khiến chúng tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93] khiến trình tải chỉ hoạt động với mã nguồn. Việc triển khai các phương thức cho phép trình tải hoạt động với các tệp mã nguồn và mã byte; . Các tệp mã byte là một tối ưu hóa để tăng tốc độ tải bằng cách loại bỏ bước phân tích cú pháp của trình biên dịch Python và do đó không có API dành riêng cho mã byte nào bị lộ

path_stats[đường dẫn]

Phương thức trừu tượng tùy chọn trả về một

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
92 chứa siêu dữ liệu về đường dẫn đã chỉ định. Các khóa từ điển được hỗ trợ là

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    93 [bắt buộc]. một số nguyên hoặc số dấu phẩy động biểu thị thời gian sửa đổi của mã nguồn;

  • object
     +-- Finder [deprecated]
     +-- MetaPathFinder
     +-- PathEntryFinder
     +-- Loader
          +-- ResourceLoader --------+
          +-- InspectLoader          |
               +-- ExecutionLoader --+
                                     +-- FileLoader
                                     +-- SourceLoader
    
    94 [tùy chọn]. kích thước tính bằng byte của mã nguồn

Bất kỳ khóa nào khác trong từ điển đều bị bỏ qua, để cho phép mở rộng trong tương lai. Nếu đường dẫn không thể được xử lý,

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
55 được nâng lên

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 4. Tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
55 thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93.

path_mtime[đường dẫn]

Phương thức trừu tượng tùy chọn trả về thời gian sửa đổi cho đường dẫn đã chỉ định

Không dùng nữa kể từ phiên bản 3. 3. Phương pháp này không được dùng nữa để thay thế cho

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98. Bạn không cần phải triển khai nó, nhưng nó vẫn có sẵn cho mục đích tương thích. Tăng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
55 nếu đường dẫn không thể được xử lý.

Đã thay đổi trong phiên bản 3. 4. Tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
55 thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93.

set_data[đường dẫn , dữ liệu]

Phương thức trừu tượng tùy chọn ghi các byte đã chỉ định vào đường dẫn tệp. Bất kỳ thư mục trung gian nào không tồn tại sẽ được tạo tự động

Khi ghi vào đường dẫn không thành công vì đường dẫn ở chế độ chỉ đọc [

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
02/
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
03], không tuyên truyền ngoại lệ

Đã thay đổi trong phiên bản 3. 4. Không còn tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93 khi được gọi.

get_code[tên đầy đủ]

Triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
05

exec_module[module]

Triển khai cụ thể của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72

Mới trong phiên bản 3. 4

load_module[tên đầy đủ]

Thực hiện cụ thể của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
73

Không dùng nữa kể từ phiên bản 3. 4. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24 thay thế.

get_source[tên đầy đủ]

Triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
09

is_package[tên đầy đủ]

Triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
10. Một mô-đun được xác định là một gói nếu đường dẫn tệp của nó [do
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
83 cung cấp] là tệp có tên
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
12 khi phần mở rộng tệp bị xóa và bản thân tên mô-đun không kết thúc bằng
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
12

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
14 – Trình nhập và móc đường dẫn¶

Mã nguồn. Lib/importlib/máy móc. py

Mô-đun này chứa các đối tượng khác nhau giúp

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
1 tìm và tải các mô-đun

importlib. máy móc. SOURCE_SUFFIXES

Danh sách các chuỗi đại diện cho các hậu tố tệp được nhận dạng cho các mô-đun nguồn

Mới trong phiên bản 3. 3

importlib. máy móc. DEBUG_BYTECODE_SUFFIXES

Danh sách các chuỗi đại diện cho hậu tố tệp cho các mô-đun mã byte không được tối ưu hóa

Mới trong phiên bản 3. 3

Không dùng nữa kể từ phiên bản 3. 5. Sử dụng

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
16 thay thế.

importlib. máy móc. OPTIMIZED_BYTECODE_SUFFIXES

Danh sách các chuỗi đại diện cho hậu tố tệp cho các mô-đun mã byte được tối ưu hóa

Mới trong phiên bản 3. 3

Không dùng nữa kể từ phiên bản 3. 5. Sử dụng

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
16 thay thế.

importlib. máy móc. BYTECODE_SUFFIXES

Danh sách các chuỗi đại diện cho các hậu tố tệp được nhận dạng cho các mô-đun mã byte [bao gồm cả dấu chấm ở đầu]

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 5. Giá trị không còn phụ thuộc vào

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
18.

importlib. máy móc. EXTENSION_SUFFIXES

Danh sách các chuỗi đại diện cho các hậu tố tệp được công nhận cho các mô-đun mở rộng

Mới trong phiên bản 3. 3

importlib. máy móc. all_suffixes[]

Trả về một danh sách kết hợp các chuỗi đại diện cho tất cả các hậu tố tệp cho các mô-đun được máy móc nhập tiêu chuẩn nhận dạng. Đây là một trình trợ giúp cho mã chỉ cần biết liệu đường dẫn hệ thống tệp có khả năng tham chiếu đến mô-đun hay không mà không cần bất kỳ chi tiết nào về loại mô-đun [ví dụ:

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
19]

Mới trong phiên bản 3. 3

lớp importlib. máy móc. BuiltinImporter

Một trình nhập cho các mô-đun tích hợp. Tất cả các mô-đun tích hợp đã biết được liệt kê trong

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
20. Lớp này thực hiện các ABC
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
21 và
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
22.

Chỉ các phương thức lớp được lớp này định nghĩa để giảm bớt nhu cầu khởi tạo

Đã thay đổi trong phiên bản 3. 5. Là một phần của PEP 489, trình nhập khẩu dựng sẵn hiện triển khai

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
23 và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72

lớp importlib. máy móc. Trình nhập đông lạnh

Một trình nhập cho các mô-đun bị treo. Lớp này thực hiện các ABC

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
21 và
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
22.

Chỉ các phương thức lớp được lớp này định nghĩa để giảm bớt nhu cầu khởi tạo

Đã thay đổi trong phiên bản 3. 4. Đã đạt được phương pháp

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
26 và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24.

lớp importlib. máy móc. WindowsRegistryFinder

Trình tìm kiếm cho các mô-đun được khai báo trong sổ đăng ký Windows. Lớp này thực hiện

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
21 ABC.

Chỉ các phương thức lớp được lớp này định nghĩa để giảm bớt nhu cầu khởi tạo

Mới trong phiên bản 3. 3

Không dùng nữa kể từ phiên bản 3. 6. Thay vào đó, hãy sử dụng cấu hình

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
30. Các phiên bản Python trong tương lai có thể không bật công cụ tìm này theo mặc định.

lớp importlib. máy móc. Trình tìm đường

A Trình tìm kiếm cho thuộc tính

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
4 và gói
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98. Lớp này thực hiện
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
21 ABC.

Chỉ các phương thức lớp được lớp này định nghĩa để giảm bớt nhu cầu khởi tạo

phương pháp phân loại find_spec[tên đầy đủ , path=None, target=None]

Phương thức lớp cố gắng tìm thông số kỹ thuật cho mô-đun được chỉ định bởi tên đầy đủ trên

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
4 hoặc, nếu được xác định, trên đường dẫn. Đối với mỗi mục nhập đường dẫn được tìm kiếm,
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
35 được chọn. Nếu một đối tượng không phải là false được tìm thấy thì nó được sử dụng làm công cụ tìm mục nhập đường dẫn để tìm mô-đun đang được tìm kiếm. Nếu không tìm thấy mục nhập nào trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
35, thì
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
37 sẽ được tìm kiếm công cụ tìm mục nhập đường dẫn và nếu tìm thấy, sẽ được lưu trữ trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
35 cùng với việc truy vấn về mô-đun. Nếu không tìm thấy công cụ tìm nào thì cả
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 đều được lưu trong bộ đệm và được trả về.

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 5. Nếu thư mục làm việc hiện tại – được biểu thị bằng một chuỗi trống – không còn hợp lệ thì hàm

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 được trả về nhưng không có giá trị nào được lưu vào bộ đệm trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
35.

phương thức lớp find_module[tên đầy đủ , path=None]

Một trình bao bọc kế thừa xung quanh

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96

Không dùng nữa kể từ phiên bản 3. 4. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 để thay thế.

classmethod invalidate_caches[]

Các cuộc gọi

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
44 trên tất cả các công cụ tìm được lưu trữ trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
35 xác định phương thức. Nếu không, các mục trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
35 được đặt thành
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 sẽ bị xóa

Đã thay đổi trong phiên bản 3. 7. Các mục của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
35 bị xóa.

Đã thay đổi trong phiên bản 3. 4. Gọi các đối tượng trong

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
37 với thư mục làm việc hiện tại cho
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
51 [i. e. chuỗi rỗng].

lớp importlib. máy móc. Trình tìm tệp[đường dẫn , *loader_details]

Một triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
52 lưu trữ kết quả từ hệ thống tệp

Đối số đường dẫn là thư mục mà công cụ tìm chịu trách nhiệm tìm kiếm

Đối số loader_details là một số lượng khác nhau của các bộ 2 mục, mỗi bộ chứa một trình tải và một chuỗi các hậu tố tệp mà trình tải nhận ra. Các trình tải dự kiến ​​​​là các hàm có thể gọi được chấp nhận hai đối số là tên của mô-đun và đường dẫn đến tệp được tìm thấy

Công cụ tìm sẽ lưu trữ nội dung thư mục khi cần thiết, thực hiện lệnh gọi stat cho từng tìm kiếm mô-đun để xác minh bộ đệm không bị lỗi thời. Vì độ ổn định của bộ nhớ cache phụ thuộc vào mức độ chi tiết của thông tin trạng thái của hệ điều hành đối với hệ thống tệp, nên có thể xảy ra tình trạng chạy đua tìm kiếm một mô-đun, tạo một tệp mới, sau đó tìm kiếm mô-đun mà tệp mới đại diện. Nếu các hoạt động diễn ra đủ nhanh để phù hợp với mức độ chi tiết của lệnh gọi stat, thì quá trình tìm kiếm mô-đun sẽ không thành công. Để ngăn điều này xảy ra, khi bạn tạo một mô-đun động, hãy đảm bảo gọi ____

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
01

Mới trong phiên bản 3. 3

đường dẫn

Đường dẫn mà công cụ tìm sẽ tìm kiếm trong

find_spec[tên đầy đủ , mục tiêu=None]

Cố gắng tìm thông số kỹ thuật để xử lý tên đầy đủ trong

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
86

Mới trong phiên bản 3. 4

find_loader[tên đầy đủ]

Cố gắng tìm trình tải để xử lý tên đầy đủ trong

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
86

Không dùng nữa kể từ phiên bản 3. 10. Sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
96 để thay thế.

invalidate_caches[]

Xóa bộ nhớ cache nội bộ

classmethod path_hook[*loader_details]

Một phương thức lớp trả về một bao đóng để sử dụng trên

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
37. Một thể hiện của
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
58 được trả về bởi bao đóng bằng cách sử dụng đối số đường dẫn được cung cấp trực tiếp cho bao đóng và loader_details gián tiếp

Nếu đối số để đóng không phải là một thư mục hiện có, thì

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 được nâng lên

lớp importlib. máy móc. SourceFileLoader[tên đầy đủ , đường dẫn]

Triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
60 bằng cách phân lớp
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
61 và cung cấp một số triển khai cụ thể của các phương thức khác

Mới trong phiên bản 3. 3

tên

Tên của mô-đun mà trình tải này sẽ xử lý

đường dẫn

Đường dẫn đến tệp nguồn

is_package[tên đầy đủ]

Trả lại

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
62 nếu có vẻ như
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
86 dành cho một gói hàng

path_stats[đường dẫn]

Triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
64

set_data[đường dẫn , dữ liệu]

Triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
65

load_module[tên=Không có]

Việc triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
66 trong đó việc chỉ định tên của mô-đun cần tải là tùy chọn

Không dùng nữa kể từ phiên bản 3. 6. Sử dụng

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
67 để thay thế.

lớp importlib. máy móc. SourcelessFileLoader[tên đầy đủ , đường dẫn]

Việc triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
61 có thể nhập các tệp mã byte [i. e. không có tệp mã nguồn nào tồn tại]

Xin lưu ý rằng việc sử dụng trực tiếp các tệp mã byte [và do đó không phải tệp mã nguồn] sẽ ngăn các mô-đun của bạn sử dụng được bởi tất cả các triển khai Python hoặc các phiên bản Python mới làm thay đổi định dạng mã byte

Mới trong phiên bản 3. 3

tên

Tên của mô-đun mà trình tải sẽ xử lý

đường dẫn

Đường dẫn đến tệp mã byte

is_package[tên đầy đủ]

Xác định xem mô-đun có phải là một gói dựa trên

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
86

get_code[tên đầy đủ]

Trả về đối tượng mã cho

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
70 được tạo từ
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
86

get_source[tên đầy đủ]

Trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 dưới dạng tệp mã byte không có nguồn khi trình tải này được sử dụng

load_module[tên=Không có]

Việc triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
66 trong đó việc chỉ định tên của mô-đun cần tải là tùy chọn

Không dùng nữa kể từ phiên bản 3. 6. Sử dụng

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
67 để thay thế.

lớp importlib. máy móc. ExtensionFileLoader[tên đầy đủ , đường dẫn]

Triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
75 cho các mô-đun mở rộng

Đối số tên đầy đủ chỉ định tên của mô-đun mà trình tải sẽ hỗ trợ. Đối số đường dẫn là đường dẫn đến tệp của mô-đun mở rộng

Mới trong phiên bản 3. 3

tên

Tên của mô-đun mà trình tải hỗ trợ

đường dẫn

Đường dẫn đến mô-đun mở rộng

create_module[spec]

Tạo đối tượng mô-đun từ thông số kỹ thuật đã cho theo PEP 489

Mới trong phiên bản 3. 5

exec_module[module]

Khởi tạo đối tượng mô-đun đã cho theo PEP 489

Mới trong phiên bản 3. 5

is_package[tên đầy đủ]

Trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
62 nếu đường dẫn tệp trỏ đến mô-đun
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
12 của gói dựa trên
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
78

get_code[tên đầy đủ]

Trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 vì các mô-đun mở rộng thiếu đối tượng mã

get_source[tên đầy đủ]

Trả về

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 vì các mô-đun mở rộng không có mã nguồn

get_filename[tên đầy đủ]

Trả lại

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
86

Mới trong phiên bản 3. 4

NamespaceLoader[tên, đường dẫn, path_finder].

Triển khai cụ thể của

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
22 cho các gói không gian tên. Đây là bí danh cho một lớp riêng tư và chỉ được công khai để xem xét nội quan thuộc tính
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75 trên các gói không gian tên

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True

Mới trong phiên bản 3. 11

lớp importlib. máy móc. ModuleSpec[tên , trình tải, *, origin=None, loader_state=None, is_package=None]

Thông số kỹ thuật cho trạng thái liên quan đến hệ thống nhập của mô-đun. Điều này thường được hiển thị dưới dạng thuộc tính

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
84 của mô-đun. Trong các mô tả bên dưới, các tên trong ngoặc đơn cung cấp thuộc tính tương ứng có sẵn trực tiếp trên đối tượng mô-đun, e. g.
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
85. Tuy nhiên, lưu ý rằng mặc dù các giá trị thường tương đương nhưng chúng có thể khác nhau do không có sự đồng bộ hóa giữa hai đối tượng. Ví dụ: có thể cập nhật
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
36 của mô-đun trong thời gian chạy và điều này sẽ không được tự động phản ánh trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
87 của mô-đun và ngược lại

Mới trong phiên bản 3. 4

tên

[______034]

Tên đầy đủ của mô-đun. công cụ tìm phải luôn đặt thuộc tính này thành một chuỗi không trống.

trình tải

[

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75]

Trình tải loader được sử dụng để tải mô-đun. công cụ tìm phải luôn đặt thuộc tính này.

xuất xứ

[

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
36]

Vị trí mà trình tải nên sử dụng để tải mô-đun. Ví dụ: đối với các mô-đun được tải từ một. tệp py đây là tên tệp. trình tìm kiếm phải luôn đặt thuộc tính này thành một giá trị có ý nghĩa cho trình tải . Trong trường hợp không phổ biến là không có [như đối với các gói không gian tên], thì nên đặt thành

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0.

submodule_search_locations

[

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98]

Danh sách các vị trí sẽ tìm thấy các mô-đun con của gói. Hầu hết thời gian đây là một thư mục duy nhất. công cụ tìm nên đặt thuộc tính này thành một danh sách, thậm chí là một danh sách trống, để cho hệ thống nhập biết rằng mô-đun là một gói. Nó phải được đặt thành

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 cho các mô-đun không phải gói. Nó được đặt tự động sau đó thành một đối tượng đặc biệt cho các gói không gian tên.

loader_state

The finder có thể đặt thuộc tính này thành một đối tượng chứa dữ liệu bổ sung, dành riêng cho mô-đun để sử dụng khi tải mô-đun. Nếu không, nó nên được đặt thành

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0.

được lưu trong bộ nhớ cache

[______037]

Tên tệp của phiên bản đã biên dịch của mã mô-đun. trình tìm kiếm phải luôn đặt thuộc tính này nhưng nó có thể là

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 đối với các mô-đun không cần lưu trữ mã đã biên dịch.

cha mẹ

[______041]

[Chỉ đọc] Tên đủ điều kiện của gói chứa mô-đun [hoặc chuỗi trống cho mô-đun cấp cao nhất]. Nếu mô-đun là một gói thì cái này giống như

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
70

has_location
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
62 nếu thông số kỹ thuật
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
900 đề cập đến một vị trí có thể tải,

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
901 ngược lại. Giá trị này tác động đến cách diễn giải
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
900 và cách điền vào
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
36 của mô-đun

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
904 – Mã tiện ích dành cho nhà nhập khẩu¶

Mã nguồn. Lib/importlib/tận dụng. py

Mô-đun này chứa các đối tượng khác nhau giúp xây dựng trình nhập .

importlib. sử dụng. MAGIC_NUMBER

Các byte đại diện cho số phiên bản mã byte. Nếu bạn cần trợ giúp về việc tải/ghi mã byte thì hãy xem xét

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
60

Mới trong phiên bản 3. 4

importlib. sử dụng. cache_from_source[đường dẫn , debug_override=None, *, optimization=None]

Trả lại đường dẫn PEP 3147/PEP 488 cho tệp được biên dịch theo byte được liên kết với đường dẫn nguồn. Ví dụ: nếu đường dẫn là

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
906 thì giá trị trả về sẽ là
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
907 cho Python 3. 2. Chuỗi
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
908 xuất phát từ thẻ ma thuật hiện tại [xem
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
909; nếu
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
910 không được xác định thì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93 sẽ được nâng lên]

Tham số tối ưu hóa được sử dụng để chỉ định mức độ tối ưu hóa của tệp mã byte. Chuỗi rỗng thể hiện không có sự tối ưu hóa, vì vậy,

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
906 với mức tối ưu hóa là
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
51 sẽ dẫn đến đường dẫn mã byte là
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
907.
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 khiến mức tối ưu hóa của trình thông dịch được sử dụng. Bất kỳ biểu diễn chuỗi nào của giá trị khác đều được sử dụng, do đó,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
906 với sự tối ưu hóa của
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
917 sẽ dẫn đến đường dẫn mã byte của
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
918. Biểu diễn chuỗi tối ưu hóa chỉ có thể là chữ và số, nếu không thì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72 được nâng lên

Tham số debug_override không được dùng nữa và có thể được sử dụng để ghi đè giá trị của hệ thống cho

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
18. Giá trị
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
62 tương đương với cài đặt tối ưu hóa cho chuỗi trống. Giá trị
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
901 giống như cài đặt tối ưu hóa thành
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
923. Nếu cả hai debug_override tối ưu hóa không phải là
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 thì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
925 được nâng lên

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 5. Tham số tối ưu hóa đã được thêm vào và tham số debug_override không được dùng nữa.

Đã thay đổi trong phiên bản 3. 6. Chấp nhận một đối tượng giống đường dẫn .

importlib. sử dụng. source_from_cache[đường dẫn]

Cung cấp đường dẫn đến tên tệp PEP 3147, trả lại đường dẫn tệp mã nguồn được liên kết. Ví dụ: nếu đường dẫn là ____1907 thì đường dẫn được trả về sẽ là ____1906. đường dẫn không cần tồn tại, tuy nhiên nếu nó không phù hợp với định dạng PEP 3147 hoặc PEP 488, một

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72 sẽ xuất hiện. Nếu
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
910 không được xác định, thì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
93 được nâng lên

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 6. Chấp nhận một đối tượng giống đường dẫn .

importlib. sử dụng. decode_source[source_byte]

Giải mã các byte đã cho đại diện cho mã nguồn và trả về dưới dạng một chuỗi có các dòng mới chung [theo yêu cầu của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
931]

Mới trong phiên bản 3. 4

importlib. sử dụng. resolve_name[name , gói]

Phân giải tên mô-đun tương đối thành tên tuyệt đối

Nếu tên không có dấu chấm ở đầu, thì tên chỉ được trả về. Điều này cho phép sử dụng chẳng hạn như

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
932 mà không cần kiểm tra xem có cần đối số gói không

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 được nâng lên nếu tên là tên mô-đun tương đối nhưng gói là giá trị sai [e. g.
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 hoặc chuỗi rỗng].
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 cũng được nâng lên nếu một tên họ hàng sẽ thoát khỏi gói chứa nó [e. g. yêu cầu
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
936 từ bên trong gói
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
937]

Mới trong phiên bản 3. 3

Đã thay đổi trong phiên bản 3. 9. Để cải thiện tính nhất quán với câu lệnh nhập, hãy tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
28 thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72 đối với các lần nhập tương đối không hợp lệ.

importlib. sử dụng. find_spec[tên , gói=None]

Tìm thông số kỹ thuật cho một mô-đun, tùy ý liên quan đến tên gói đã chỉ định. Nếu mô-đun ở trong

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1, thì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
941 được trả về [trừ khi thông số kỹ thuật sẽ là
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 hoặc không được đặt, trong trường hợp đó,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
72 được nâng lên]. Mặt khác, tìm kiếm bằng cách sử dụng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
73 được thực hiện.
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 được trả lại nếu không tìm thấy thông số kỹ thuật.

Nếu tên dành cho mô-đun con [chứa dấu chấm], mô-đun mẹ sẽ tự động được nhập

tên và gói hoạt động giống như đối với

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
6

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 7. Tăng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24 thay vì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
948 nếu gói trên thực tế không phải là gói [i. e. thiếu thuộc tính
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
98].

importlib. sử dụng. module_from_spec[spec]

Tạo một mô-đun mới dựa trên thông số kỹ thuật và

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
950

Nếu

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
950 không trả về
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0, thì mọi thuộc tính tồn tại trước đó sẽ không được đặt lại. Ngoài ra, sẽ không có
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
948 nào được nâng lên nếu được kích hoạt trong khi truy cập thông số kỹ thuật hoặc đặt thuộc tính trên mô-đun

Chức năng này được ưu tiên sử dụng hơn là sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
954 để tạo mô-đun mới vì thông số kỹ thuật được sử dụng để đặt càng nhiều thuộc tính kiểm soát nhập trên mô-đun càng tốt

Mới trong phiên bản 3. 5

@importlib. sử dụng. module_for_loader

A decorator cho

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
66 xử lý việc chọn đối tượng mô-đun thích hợp để tải. Phương thức được trang trí dự kiến ​​​​sẽ có chữ ký cuộc gọi nhận hai đối số vị trí [e. g.
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
956] mà đối số thứ hai sẽ là đối tượng mô-đun được trình tải sử dụng. Lưu ý rằng trình trang trí sẽ không hoạt động trên các phương thức tĩnh do giả định có hai đối số.

Phương thức được trang trí sẽ lấy tên của mô-đun sẽ được tải như mong đợi cho trình tải . Nếu không tìm thấy mô-đun trong

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1 thì một mô-đun mới sẽ được tạo. Bất kể mô-đun đến từ đâu,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75 được đặt thành self và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
41 được đặt dựa trên những gì mà
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
960 trả về [nếu có]. Các thuộc tính này được đặt vô điều kiện để hỗ trợ tải lại.

Nếu một ngoại lệ được đưa ra bằng phương pháp được trang trí và một mô-đun đã được thêm vào

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1, thì mô-đun đó sẽ bị xóa để ngăn mô-đun được khởi tạo một phần ở bên trái trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1. Nếu mô-đun đã có trong
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1 thì nó được để yên

Đã thay đổi trong phiên bản 3. 3. ______275 và

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
41 được đặt tự động [khi có thể].

Đã thay đổi trong phiên bản 3. 4. Đặt

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
34,
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
41 vô điều kiện để hỗ trợ tải lại.

Không dùng nữa kể từ phiên bản 3. 4. Máy móc nhập khẩu hiện trực tiếp thực hiện tất cả các chức năng do chức năng này cung cấp.

@importlib. sử dụng. set_loader

A decorator cho

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
66 để đặt thuộc tính
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75 trên mô-đun được trả về. Nếu thuộc tính đã được đặt thì trình trang trí không làm gì cả. Giả sử rằng đối số vị trí đầu tiên cho phương thức được bao bọc [i. e.
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
971] là những gì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75 nên được đặt thành.

Đã thay đổi trong phiên bản 3. 4. Đặt

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
75 nếu được đặt thành
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0, như thể thuộc tính không tồn tại.

Không dùng nữa kể từ phiên bản 3. 4. Máy móc nhập khẩu sẽ tự động xử lý việc này.

@importlib. sử dụng. set_package

A decorator cho

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
66 để đặt thuộc tính
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
41 trên mô-đun được trả về. Nếu
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
41 được đặt và có giá trị khác với
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 thì nó sẽ không bị thay đổi.

Không dùng nữa kể từ phiên bản 3. 4. Máy móc nhập khẩu sẽ tự động xử lý việc này.

importlib. sử dụng. spec_from_loader[tên , trình tải, *, origin=None, is_package=None]

Một chức năng ban đầu để tạo phiên bản

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
25 dựa trên trình tải. Các tham số có cùng ý nghĩa như đối với ModuleSpec. Hàm sử dụng các API trình tải có sẵn, chẳng hạn như
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
10, để điền vào bất kỳ thông tin còn thiếu nào trong thông số kỹ thuật.

Mới trong phiên bản 3. 4

importlib. sử dụng. spec_from_file_location[tên , vị trí, *, loader=None, submodule_search_locations=None]

Hàm xuất xưởng để tạo phiên bản

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
25 dựa trên đường dẫn đến tệp. Thông tin còn thiếu sẽ được điền vào thông số kỹ thuật bằng cách sử dụng API trình tải và ngụ ý rằng mô-đun sẽ dựa trên tệp

Mới trong phiên bản 3. 4

Đã thay đổi trong phiên bản 3. 6. Chấp nhận một đối tượng giống đường dẫn .

importlib. sử dụng. source_hash[source_byte]

Trả lại hàm băm của source_bytes dưới dạng byte. Tệp

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
982 dựa trên hàm băm nhúng
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
983 nội dung của tệp nguồn tương ứng trong tiêu đề của nó

Mới trong phiên bản 3. 7

lớp importlib. sử dụng. LazyLoader[trình tải]

Một lớp trì hoãn việc thực thi trình tải mô-đun cho đến khi mô-đun có một thuộc tính được truy cập

Lớp này chỉ hoạt động với các trình tải xác định

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
24 là yêu cầu kiểm soát loại mô-đun được sử dụng cho mô-đun. Vì những lý do tương tự, phương thức
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
26 của trình tải phải trả về
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
0 hoặc một loại mà thuộc tính
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
987 của nó có thể bị thay đổi cùng với việc không sử dụng khe cắm . Cuối cùng, các mô-đun thay thế đối tượng được đặt vào
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
1 sẽ không hoạt động vì không có cách nào để thay thế đúng cách các tham chiếu mô-đun trong trình thông dịch một cách an toàn; .

Ghi chú

Đối với các dự án mà thời gian khởi động là rất quan trọng, lớp này cho phép giảm thiểu chi phí tải một mô-đun nếu nó không bao giờ được sử dụng. Đối với các dự án mà thời gian khởi động không cần thiết thì việc sử dụng lớp này không được khuyến khích nhiều do các thông báo lỗi được tạo trong quá trình tải bị hoãn lại và do đó xảy ra ngoài ngữ cảnh

Mới trong phiên bản 3. 5

Đã thay đổi trong phiên bản 3. 6. Bắt đầu gọi

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
26, xóa cảnh báo tương thích cho
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
991 và
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
992.

classmethod factory[loader]

Một phương thức tĩnh trả về một phương thức có thể gọi được để tạo ra một bộ tải chậm. Điều này có nghĩa là được sử dụng trong các tình huống mà trình tải được truyền theo lớp thay vì theo thể hiện

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
9

Ví dụ¶

Nhập theo chương trình¶

Để nhập một mô-đun theo chương trình, hãy sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
993

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
7

Kiểm tra xem một mô-đun có thể được nhập hay không¶

Nếu bạn cần tìm hiểu xem một mô-đun có thể được nhập mà không thực sự nhập hay không, thì bạn nên sử dụng

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
78

Lưu ý rằng nếu

>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
70 là mô-đun con [chứa dấu chấm], thì
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
78 sẽ nhập mô-đun chính

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
0

Nhập trực tiếp tệp nguồn¶

Để nhập trực tiếp tệp nguồn Python, hãy sử dụng công thức sau

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
2

Thực hiện nhập lười biếng¶

Ví dụ dưới đây cho thấy cách thực hiện nhập chậm

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
9

Thiết lập một nhà nhập khẩu¶

Đối với các tùy chỉnh nhập sâu, bạn thường muốn triển khai trình nhập . Điều này có nghĩa là quản lý cả trình tìm kiếmtrình tải của mọi thứ. Đối với công cụ tìm, có hai hương vị để lựa chọn tùy thuộc vào nhu cầu của bạn. a công cụ tìm đường dẫn meta hoặc công cụ tìm mục nhập đường dẫn . Cái trước là những gì bạn sẽ đặt trên

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
73 trong khi cái sau là những gì bạn tạo bằng cách sử dụng móc nhập đường dẫn trên
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
37 hoạt động với các mục nhập
>>> from importlib.machinery import NamespaceLoader
>>> import my_namespace
>>> isinstance[my_namespace.__loader__, NamespaceLoader]
True
>>> import importlib.abc
>>> isinstance[my_namespace.__loader__, importlib.abc.Loader]
True
4 để có khả năng tạo một . Ví dụ này sẽ chỉ cho bạn cách đăng ký trình nhập khẩu của riêng bạn để quá trình nhập sẽ sử dụng chúng [để tạo trình nhập khẩu cho chính bạn, hãy đọc tài liệu về các lớp thích hợp được xác định trong gói này].

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
9

Xấp xỉ
object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
993¶

Bản thân quá trình nhập được triển khai bằng mã Python, giúp có thể hiển thị hầu hết các máy nhập thông qua importlib. Phần sau đây giúp minh họa các API khác nhau mà importlib hiển thị bằng cách cung cấp triển khai gần đúng của

object
 +-- Finder [deprecated]
 +-- MetaPathFinder
 +-- PathEntryFinder
 +-- Loader
      +-- ResourceLoader --------+
      +-- InspectLoader          |
           +-- ExecutionLoader --+
                                 +-- FileLoader
                                 +-- SourceLoader
993

Chủ Đề