转载自: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 引用文件中的类 报错_Python学习笔记7 头文件的添加规则(转载)相关推荐

  1. python函数第二次运行报错_Python学习笔记2-函数、高级特性

    函数 调用函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数 >>> abs(100) 100 >>> abs(-20) 20 ...

  2. python面向对象编程中方法和属性_Python面向对象编程中关于类和方法的学习笔记...

    Python面向对象编程中关于类和方法的学习笔记 类与类方法是面向对象的编程语言中必不可少的特性,本文总结了Python面向对象编程中关于类和方法的学习笔记,需要的朋友可以参考下 类和实例 pytho ...

  3. Fedora升级后Python虚拟环境中的pip报错

    今日Fedora从28升级到29后,进入Python的虚拟目录后,本来想使用pip更新下包,结果报错了,如下: Traceback (most recent call last):File " ...

  4. python小括号报错_Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  5. python中简述对象和类的关系_Python学习笔记(七)对象和类

    什么是对象 Python中所有的数据都是以对象的形式存在,无论是简单的数字类型还是复杂的代码模块.在Python中,当我们想要创建属于自己的对象或者修改已有对象的行为时,才需要关注对象的内部实现细节. ...

  6. python read函数报错_python 使用read_csv读取 CSV 文件时报错

    读取csv文件时报错 df = pd.read_csv('c:/Users/NUC/Desktop/成绩.csv' ) Traceback (most recent call last): File ...

  7. python xlrd读取文件报错_python利用xlrd读取excel文件始终报错原因

    1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...

  8. python 等号报错_Python学习----Python基础

    Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...

  9. python处理json数据 乱码报错_python操作mysql中文显示乱码的解决方法

    本文实例展示了一个脚本python用来转化表配置数据xml并生成相应的解析代码. 但是在中文编码上出现了乱码,现将解决方法分享出来供大家参考. 具体方法如下: 1. Python文件设置编码 utf- ...

最新文章

  1. 技术人生:与其鸟宿檐下,不如击翅风雨
  2. 网易举办首届云创大会,优云软件助力司南战略
  3. 如何将hive与mysql连接_hive连接mysql配置
  4. 如何修改oracle字段类型
  5. 解密双十一小程序云背后毫秒级伸缩的Serverless计算平台:函数计算
  6. suse linux增加新磁盘分区,Virtualbox中Linux添加新磁盘并创建分区
  7. Android-入门学习笔记-图片和外观改善
  8. OO’s Sequence
  9. 什么才是Web前端开发的必备核心技能?
  10. allennlp train 参数
  11. 视频教程-CCNA自学视频课程专题四:CCNA认证重点难点解析3(扩展篇)-思科认证
  12. MSP430的JTAG接口和BSW接口
  13. 怎样将int转换为byte
  14. Python中的角度转换功能
  15. tkinter学习04
  16. 通过网页版邮箱的实现“联系我们”
  17. LoadRunner技巧之思考时间设置
  18. Windows 通过bat脚本启动Eureka,Cassandra和redis-server
  19. python 数据库框架peewee_python peewee模块使用
  20. mac下更新自带的PHP版本到5.6或7.0

热门文章

  1. 【Elasticsearch】使用 Elasticsearch Painless 脚本以递归方式遍历 JSON 字段
  2. 【SpringCloud】Spring cloud Alibaba Sentinel 热点规则
  3. 【Elasticsearch】Elasticsearch 基于scoll技术滚动搜索大量数据
  4. 【Kafka】kafka Current offset xxx for partition xxx out range
  5. Spring Boot : ApplicationListner
  6. spark学习-63-源代码:schedulerBackend和taskScheduler的创建(1)-local
  7. 60-172-010-使用-Broadcast-简介
  8. 面试官:Redis熟悉吗?谈谈Redis都有哪些性能监控指标
  9. Redis存储结构体信息,选hash还是string?
  10. 2021年北京学校高考成绩查询,2021年北京高考成绩查询时间及入口【官方】