zoukankan      html  css  js  c++  java
  • 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) ,会出现报错。

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

  • 相关阅读:
    php 信号量
    .net 反射初体验
    IEnumerable,IQueryable之前世今生
    [SQL]511+512+534+550+569
    [SQL]183+184+185+196+197
    [SQL]3.26--175+176+177+178+180+181+182
    [剑指offer]10.斐波那契数列+青蛙跳台阶问题
    [剑指offer]14-1.剪绳子
    [剑指offer]62.圆圈中最后剩下的数字
    [剑指offer]52.两个链表的第一个公共节点
  • 原文地址:https://www.cnblogs.com/taurusfy/p/7605787.html
Copyright © 2011-2022 走看看