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


    转载自: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) ,会出现报错。

    即使重复调用时,也要保证调用的一致性。

  • 相关阅读:
    mongoDB BI 分析利器
    如何定位 Node.js 的内存泄漏
    如何对MySQL数据库中的数据进行实时同步
    [有奖活动进行中]阿里数据库专家曾文旌为你解决数据库那些事
    如何实现Docker应用的自定义弹性伸缩
    vue methods 中方法的相互调用
    vue 实现部分路由组件缓存
    SSH框架之一详解maven搭建多模块项目
    GitHub Pages 搭建流程-基于jekyll-bootstrap
    ExtJs 4 中的MVC应用架构
  • 原文地址:https://www.cnblogs.com/alexYuin/p/8886359.html
Copyright © 2020-2023  润新知