1. 程式人生 > >Python學習筆記7 頭文件的添加規則(轉載)

Python學習筆記7 頭文件的添加規則(轉載)

www. nbsp .html 一個 情況 str tno sys AS

轉載自:https://www.cnblogs.com/taurusfy/p/7605787.html

***************************************************************************************************

以下是正文:

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

  • 情況一:在同一目錄下

目錄結構:

   |--a.py
   |--b.py
   |--main.py

  

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

from a imoport *
from b imoport *

  

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

目錄結構:

   |--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 文件

目錄結構:

   |--a
       |---__init__.py
       |---a.py
   |--b
       |---__init__.py
       |---b.py
   |--main.py

  

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

目錄結構:

   |--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的路徑格式不一樣,該方法適用於所有跨文件夾調用情況,但要註意路徑格式。

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

目錄結構:

|--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) ,會出現報錯。

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

Python學習筆記7 頭文件的添加規則(轉載)