python 模組匯入之迴圈匯入和類關聯匯入

2021-10-09 22:57:26 字數 2580 閱讀 9119

1.類關聯模組的匯入

直接將兩個關聯的模組全部匯入,就可以實現類關聯

使用者發表文章

建立使用者物件

發表文章,文章物件

//

from article.models import tag #如果要用類關聯,就匯入兩個關聯的類

from article.models import article

tag=

tag(

'admin'

) #--

>tag就是通過匯入tag類建立的

i=article

('個人總結'

,'家偉'

)tag.

publish_article

(i)#如果是article包中的模組想用外部的calculate.py ,就涉及內部模組呼叫外部模組,

#因為calculate是在專案底下,而models在article包底下,

#專案地下的模組直接 import calculate 即可 ,

#專案》包中的models from article import models

以下為模組被迴圈匯入

//

""" 模組迴圈匯入

a:模組

def test():

f()b: 模組

def f()

test()

造成這種情況是架構出問題了,你引用我,我又引用你,無限迴圈匯入

這是一種錯誤的方式,

在大型py專案中,需要很多python,由於架構不當,會出現相互引用模組

避免產生迴圈匯入:

1.重新架構

1.from匯入馬上會使用名字,極容易出現錯誤,建議迴圈匯入情況下,使用import匯入

# 2.先提前產生名字,在匯入模組

# 3.在匯入邏輯放在函式中,將匯入的邏輯延後到函式的呼叫,只要呼叫在產生名字後即可

# 4,if __name__=='__main__': 該方法可以阻止乙個無用**被重複呼叫多次

# 5.把匯入的語句放在最後,先讓函式們載入完

"""

迴圈匯入導致的問題:

兩個模組直接相互匯入,且相互使用其命名空間中的名字,但是有些名字沒有產生就使用,就出現了迴圈匯入問題

解決循import m4環匯入問題:延後匯入 - 但產生對方要使用的名字,再去完成匯入對方

1.from匯入馬上會使用名字,極容易出現錯誤,建議迴圈匯入情況下,使用import匯入

2.先提前產生名字,在匯入模組

3.在匯入邏輯放在函式中,將匯入的邏輯延後到函式的呼叫,只要呼叫在產生名字後即可

4,ifname==『main』: 該方法可以阻止乙個無用**被重複呼叫多次

5.把匯入的語句放在最後,先讓函式們載入完

//  

#模組的迴圈匯入1.py

import 模組的迴圈匯入2

def task1()

:print

('--------------task1----------------'

)def task2()

:print

('--------------task2----------------'

)模組的迴圈匯入2.

func()

#模組的迴圈匯入2.py

def func()

:print

('迴圈匯入2 裡面的func --1--'

)from 模組的迴圈匯入1

import task1 #重點! 解決模組迴圈匯入的解決辦法 放入函式中導用,函式結束後他自己也結束了

task1()

print

('迴圈匯入2 裡面的func --2--'

)if __name__==

'__main__'

: #還有一種方法是name=main,可以阻止多次無用呼叫,讓介面更整潔

func

()

// 

# import 模組的迴圈匯入1 #模組1載入模組2時 先執行的就是import 那麼import會導致重回模組1中,所以不將他放到頭部,放到函式內調

# 這就將導致每次迴圈匯入的第二次時,就會被函式func阻斷,實現了終止迴圈匯入的目的

## 迴圈匯入導致的問題:

# 兩個模組直接相互匯入,且相互使用其命名空間中的名字,但是有些名字沒有產生就使用,就出現了迴圈匯入問題

## 解決循import m4環匯入問題:延後匯入 - 但產生對方要使用的名字,再去完成匯入對方

## 1.from匯入馬上會使用名字,極容易出現錯誤,建議迴圈匯入情況下,使用import匯入

# 2.先提前產生名字,在匯入模組

# 3.在匯入邏輯放在函式中,將匯入的邏輯延後到函式的呼叫,只要呼叫在產生名字後即可

# 4,if __name__=='__main__': 該方法可以阻止乙個無用**被重複呼叫多次

# 5.把匯入的語句放在最後,先讓函式們載入完

python雜談之模組匯入

光看標題你可能有點不知所云。假如你有乙個模組叫做model裡面有乙個py檔案叫做md.py.檔案裡面寫下如下 model md.py print 123 在互動式頁面輸入 import model.md 使用window的cmd視窗時請用cd命令匯入到model的同級頁面,然後開啟python的互動...

python學習之模組匯入

作為c 程式設計師,最近因為工作需要,學習了python。第一次接觸指令碼語言,難免有覺得新奇的地方,python程式沒有main 函式,只有主檔案,檔案裡就一條print 語句也可執行。標準python是cpython。在python命令列 不是系統命令行!下,要匯入.py檔案,必須進入.py檔案...

python模組匯入與模組包匯入

main.py程式第一次匯入指定檔案mod.py時,執行 找到模組檔案mod.py 編譯成位元組碼 可選 執行.pyc位元組碼,建立mod.py中定義的物件。匯入模組後,模組物件會被儲存在sys.modules的表中。每次匯入時,若此表中已存在相關模組,以上3步會被跳過。1.搜尋模組檔案 按順序 程...