码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记7 头文件的添加规则(转载)

时间:2018-04-19 23:56:14      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:append   模块   问题   ash   学习   test   logs   htm   python   

转载自: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 头文件的添加规则(转载)

标签:append   模块   问题   ash   学习   test   logs   htm   python   

原文地址:https://www.cnblogs.com/alexYuin/p/8886359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!