Python开发常见问题之各模块循环依赖

  今天写了一个程序,由于设计上的问题,导致两个模块需要相互引用,出现了“importError”错误。分析良久,对于模块循环依赖的问题有两种方法:

  1、可通过调整import导入顺序来解决,把 import 语句放到方法定义的后面即可

  2、两个模块写到一个文件里面去

  对于此类问题Python并没有提供解决方案,所以尽量在设计之初就要避免出现模块循环依赖问题,以免开发后期大刀阔斧的修改。

时间: 2024-10-10 01:18:16

Python开发常见问题之各模块循环依赖的相关文章

记 suds 模块循环依赖的坑

下面是soa接口调用的核心代码 #! /usr/bin/python # coding:utf-8 from suds.client import Clientdef SoaRequest(wsdl,fnname,data): soaService = Client(wsdl).service soaRep = getattr(soaService,fnname)(data) return soaRep 问题就这样出现了: 我调用一个接口,总是报错,见下图: 之后Debug断点定位到suds模块

Python开发【2.3 模块】

1.模块导入 import 模块名 from 模块名 import 函数/类/变量 2.模块路径 import sys sys.path 3.模块重新导入 from imp import * import reload_test reload(reload_test) #重新加载模块 4.模块循环导入 # main.py from lib import lib1 def func1(): print("main.func1") lib1() def func2(): print(&qu

python开发调用基础:模块和包

一,包的调用 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #调用 glance[1..4]\api\policy.py 路径 5 # policy.py 内容 6 # def one(): 7 # print('this first!') 8 9 # 1.glance1里面什么都没有写,只有plicy这个模块写了个方法,导入了具体的模块 10 # from glance1.api import policy 导入绝体模块 11 # poli

python开发【八】---模块time&random

模块导入方法 1. 1 import 语句:import 模块 Python解释器的路径是sys.path 2. from…import 语句 from modname import name1 不会把整个modulename模块导入到当前的命名空间中,只会将它里面的name1单个引入到执行这个声明的模块的全局符号表. 3. from…import* 语句 from modname import * __name__ 在执行文件中打印是字符串__main__ 在被调用文件中打印就是被调用文件的路

Python开发【第六篇】:模块

模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 如:os 是系统相关的模块:file是文件操作相关的模块 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 情景一: 情景二: 情景三: 2.导入模块 Python之所以应用越来越广泛,

转 《python开发_常用的python模块及安装方法》

http://www.cnblogs.com/hongten/p/hongten_python_more_modules.html adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:

Python开发【Part 7】:Python常用模块

本节内容: 模块介绍 自定义模块 开源模块 os模块 sys模块 hashlib模块 json和pickle模块 shutil模块 ConfigParser模块 logging模块 time模块 re模块 random模块 一.模块介绍 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

小小见解之python循环依赖

a.py from b import b print '---------this is module a.py----------' def a(): print "hello, a" b() a() b.py print '----------this is module b.py----------' def b(): print "hello, b" def c(): print "hello, c" c() from a import