python 動態導包


  • python 包簡介
  • 基本導包/模塊 import
  • 動態導包/模塊 __import__   importlib

1. python 包簡介

  • 包是一個分層次的文件目錄結構,它定義了一個由模塊及子包,和子包下的子包等組成的 Python 的應用環境。
  • 簡單來說,包就是文件夾,但該文件夾下必須存在 __init__.py 文件, 該文件的內容可以為空。__init__.py 用於標識當前文件夾是一個包。
  • Python 模塊(Module),是一個 Python 文件,以 .py 結尾,包含了 Python 對象定義和Python語句

2. 基本導包/模塊 import

import 用於導入所需包/模塊

import package #導包 

import module #導模塊

form package import module #從包中導模塊

from module import * #從模塊中導入所有內容

還有其他的import方式:

import os, sys, time

from os import *

from os import path, walk, unlink

from os import uname, remove

from os import (path, walk, unlink, uname, 
                remove, rename)

from os import path, walk, unlink, uname, \
                remove, rename

更細節 import 參考:http://codingpy.com/article/python-import-101/

3. 動態導包/模塊 __import__   importlib

__import__:系統函數__import__() 

__import__ (name[, globals[, locals[, fromlist[, level]]]])
  • name (required): 被加載 module 的名稱
  • globals (optional): 包含全局變量的字典,該選項很少使用,采用默認值 global()
  • locals (optional): 包含局部變量的字典,內部標准實現未用到該變量,采用默認值 local()
  • fromlist (Optional): 被導入的 submodule 名稱
  • level (Optional): 導入路徑選項,默認為 -1,表示同時支持 absolute import 和 relative import
os = __import__('os')
# 相當於 import os
# import 導入本質上是調用 __import__ 加載
import foo

# 最終調用如下函數實現

# foo = __import__('foo', globals(), locals(), [], -1)

importlib:Python標准庫中提供了importlib模塊,目的是提供import語句(還有import())的底層實現,另外,importlib讓程序員可以在導入過程中創建自己的對象。

imoprt importlib
#導入foo.py模塊
foo = importlib.import_module('foo')
foo.main()

importlib詳細參考:https://hatboy.github.io/2017/12/21/Python-importlib%E8%AE%B2%E8%A7%A3/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM