python 動態導包

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

1. python 包簡介

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

2. 基本導包/模塊 import

import 用於導入所需包/模塊python

import package #導包 

import module #導模塊

form package import module #從包中導模塊

from module import * #從模塊中導入全部內容

還有其餘的import方式:git

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__() github

__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/ui

相關文章
相關標籤/搜索