python 的頭文件包含問題


一個python項目中一個文件需要引用另一個文件中的類,遇到的幾個問題,總結如下:

0x01

情況一:在同一目錄下

project

   |--a.py

   |--b.py

   |--main.py

在main.py中,需要引用a.py和b.py中的類:

from a imoport *

from b imoport *

0x02

情況二:主路徑下調用子文件夾中的類

project

   |--a

       |---a.py

   |--b

       |---b.py

   |--main.py

在main.py中,需要引用a.py和b.py中的類,a,b為文件夾

from a.a imoport *

from b.b imoport *

直接這樣引用會報錯,解決方法是在a,b文件夾中增加__init__.py文件

project

   |--a

       |---__init__.py

       |---a.py

   |--b

       |---__init__.py

       |---b.py

   |--main.py

0x03

情況三:不同文件夾之間的調用

project

   |--a

       |---__init__.py

       |---a.py

   |--b

       |---__init__.py

       |---b.py

   |--main.py

b中調用a中的類,或者a中調用b中的類

在b.py中

import sys
sys.path.append('E:\\testnow\\project\\a')
import a

linux和window的路徑格式不一樣,該方法適用於所有跨文件夾調用情況,但要注意路徑格式。

0x04

文件調用時出現的同一模塊重復調用問題

project

   |--a

       |---__init__.py

       |---a.py

   |--b

       |---__init__.py

       |---b.py

   |--main.py

比如a.py中調用了

from time import * 

from datetime import datetime

而且main.py中import了a:

from a.a import *

那么main.py中可以直接使用time(),datetime()相關函數,不需要再import了

此時如果main.py中 import time,並且這樣調用相關函數time.time() 或time.sleep(1) ,會出現報錯。

即使重復調用時,也要保證調用的一致性。

 


免責聲明!

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



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