常規匯入
# policy.py
def policy_func():
print("這是policy檔案中的函式")
# run.py
import glance.api.policy
glance.api.policy.policy_func()
執行結果:
這是policy檔案中的函式 # 成功匯入
# policy.py
def policy_func():
print("這是policy檔案中的函式")
# run.py
from glance.api.policy import policy_func
policy_func()
執行結果:
這是policy檔案中的函式 # 成功匯入
包內部之間的匯入:
# versions.py
def versions_func():
print("這是versions檔案中的函式")
# policy.py
import versions # 直接匯入versions模組,在外面的run檔案中執行,就無法找到versions模組
def policy_func():
versions.versions_func()
print("這是policy檔案中的函式")
# run.py
from glance.api import policy
policy.policy_func()
執行結果:
modulenotfounderror: no module named 'versions'
絕對匯入:
# versions.py
def versions_func():
print("這是versions檔案中的函式")
# policy.py
from glance.api import versions
def policy_func():
versions.versions_func()
print("這是policy檔案中的函式")
# run.py
from glance.api import policy
policy.policy_func()
執行結果:
這是versions檔案中的函式
這是policy檔案中的函式
# versions.py
def versions_func():
print("這是versions檔案中的函式")
# policy.py
from . import versions
def policy_func():
versions.versions_func()
print("這是policy檔案中的函式")
# run.py
from glance.api import policy
policy.policy_func()
執行結果:
這是versions檔案中的函式
這是policy檔案中的函式
# versions.py
def versions_func():
print("這是versions檔案中的函式")
# policy.py
from . import versions
def policy_func():
versions.versions_func()
print("這是policy檔案中的函式")
執行結果:
importerror: cannot import name 'versions'
單獨匯入包,並使用包內的包或模組
# policy.py
def policy_func():
print("這是policy檔案中的函式")
# run.py
import glance # 只匯入了__init__.py檔案
glance.api.policy.policy_func() # 並不能使用
執行結果:
attributeerror: module 'glance' has no attribute 'policy'
# policy.py
def policy_func():
print("這是policy檔案中的函式")
# glance/__init__.py
from . import api
# glance/api/__init__.py
from . import policy
# run.py
import glance
glance.api.policy.policy_func()
執行結果:
這是policy檔案中的函式
# policy.py
def policy_func():
print("這是policy檔案中的函式")
# glance/__init__.py
from .api import *
# glance/api/__init__.py
from .policy import *
# run.py
import glance
glance.policy_func()
執行結果:
這是policy檔案中的函式
# glance/__init__.py
from .api import *
# glance/api/__init__.py
__all__ = ["versions"] # 只能匯入versions,其餘api下模組都不能被匯入
# run.py
import glance
glance.policy
執行結果:
attributeerror: module 'glance' has no attribute 'policy'
# policy.py
def policy_func():
print("這是policy檔案中的func")
def policy_foo():
print("這是policy檔案中的foo")
# glance/__init__.py
from .api import *
# glance/api/__init__.py
from .policy import *
__all__ = ["policy_foo"] # 控制只能匯入foo函式,其餘函式都不能被匯入
# run.py
import glance
glance.policy_func()
執行結果:
attributeerror: module 'glance' has no attribute 'policy_func'
python 基礎(十八) shutil模組
shutil.copyfileobj src,dst 只拷貝檔案內容,需要open檔案 目標檔案不存在時建立,存在時覆蓋 shutil.copyfileobj open old.xml r open new.xml w shutil.copyfle src.dst 直接拷貝檔案內容 shutil.c...
基礎命令(十八)
paste 命令用於合併檔案的列。paste 指令會把每個檔案以列對列的方式,一列列地加以合併。paste s d 間隔字元 help version 檔案 引數 d 間隔字元 或 delimiters 間隔字元 用指定的間隔字元取代跳格字元。s或 serial 串列進行而非平行處理。version...
Python零基礎入門十八之模組
這篇模組主要講解的是模組的相關知識,首先說下什麼是模組,簡答一句話就是說模組即程式,我們可以任何一段程式作為乙個模組,在需要的時候直接匯入即可。1.模組儲存在 一般跟python的ide放在乙個目錄下,其他目錄如何放置下文將介紹 2.匯入模組的三種方法 1 import 模組名 2 from 模組名...