precondition:比如我有如下这样的文件目录结构

说明:add和debug两个包都隶属于src目录,它们是同级目录,其中在add路径下有一个add.py的模块,里面定义了一个jiafa()的函数,实现两数相加并输出总和。

现在要实现如下几个调用功能:

1、在debug2文件实现直接调用add模块进行求和

2、在debug1文件中实现调用add模块进行求和

注意:要实现一个模块要能被另外其它模块正常调用,则在对应模块所在的文件夹下新建一个__init__.py的空文件(这个文件作用就是表示当前该文件夹为一个包,只有是包才能被其它模块所调用)

add.py文件中定义了一个jiafa()的函数,代码如下:

 #-*- coding:utf-8 -*-
'''
Created on 2018年7月21日 @author: lenovo
'''
def jiafa(a,b):
print "a + b is:",a + b
return a + b

一、下面介绍实现第一个功能方法如下,在debug2.py文件中这样进行调用

 #-*- coding:utf-8 -*-
'''
Created on 2018年7月21日 @author: lenovo
'''
import add print add.jiafa(11, 22)

输出:

a + b is: 33
33

总结:如果是在同一个包里面(也就是同一级目录),如果要调用其它模块的话,可以在程序中直接使用 “import 模块名”即可,例如上例中 import add

二、下面介绍第二个功能的实现方法,在debug1文件中可以使用这三种方法进行调用:

方法1、

 #-*- coding:utf-8 -*-
'''
Created on 2018年7月21日 @author: lenovo
'''
from add.add import jiafa
print jiafa(1, 4)

输出如下

a + b is: 5
5

总结1:模块间相互调用且不在同一个包里面(不在同一级目录),则使用 ”from 包名.模块名 import 函数名“,如果要调用多级目录里面的话(前提是每一级目录里面都要新增这个__init__.py的空文件),就这样 "from xxxx.xxx.xx.x import yy",例如上例中的 ”from add.add import jiafa“

方法2、

 #-*- coding:utf-8 -*-
'''
Created on 2018年7月21日 @author: lenovo
'''
from add.add import *
print jiafa(2, 4)

输出如下:

a + b is: 6
6

总结2:在实际应用中,一个模块文件中不可能就只放一个函数,这样就像上面”总结1“里面的方法有个缺陷,如果要使用同一个模块里面其它函数的话,则又要重新导入一次要使用的函数,很麻烦,为了省事,就可以这样 "from xxx.xx.x import * ",用 * 号代表模块文件x中所有的函数,这样就可以全部导入进来

方法三、

 #-*- coding:utf-8 -*-
'''
Created on 2018年7月21日 @author: lenovo
'''
import add.add
sum = add.add.jiafa(3,4)
print sum

输出如下:

a + b is: 7
7

总结3:该方法跟第一个功能一样,只不过一个是在同级目录,一个是在不同目录里面。

写在最末尾:在实际编码过程中,为了统一编码规范,在导入第三方模块时,上面import xx 和 from xx import yy两种方法最好统一使用一种,不要混合使用,这样比较利于提高程序的可读性。

【python】关于python中模块导入的总结的更多相关文章

  1. [python]关于在python中模块导入问题追加总结

    [背景] 最近在写程序时,我使用的eclipse编辑器运行都没有问题,然后部署到自动化环境上却偏偏报找不到相应模块问题,现在对该问题在之前的贴子上追加总结 原帖子:[python]关于python中模 ...

  2. python学习日记(模块导入)

    什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.p ...

  3. python基础之import模块导入和包的调用

    模块概念 在Python中,一个.py文件就称之为一个模块(Module).使用模块组织代码,最大的好处是大大提高了代码的可维护性 模块一共三种:python标准库.第三方模块.应用程序自定义模块. ...

  4. Python开发基础-Day16import模块导入和包的调用

    模块概念 在Python中,一个.py文件就称之为一个模块(Module).使用模块组织代码,最大的好处是大大提高了代码的可维护性 模块一共三种:python标准库.第三方模块.应用程序自定义模块. ...

  5. python - 路径处理 和 模块导入

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_模块导入.py@ide: PyCharm Community E ...

  6. 关于php,python,javascript文件或者模块导入引入的区别和联系

    前言: 我们经常看到编程语言之间,文件或者模块的引来引去的,但是他们在各个编程语言之间有什么区别和联系呢? 1.javascript (1).全局引入方式: <script src='xxxxx ...

  7. python中模块导入问题(已解决)

    想在python中导入request包: 无此模块,于是先安装requests包: 但是提示"Requirement already satisfied".在提示的相应目录里,找到 ...

  8. maya_help()验证编程过程中模块导入的情况

    import rigLib reload(rigLib.base.control)spine = rigLib.base.control.Control( prefix = 'spine1') hel ...

  9. Django 1.11 shell中模块导入问题

    django报错:django.core.exceptions.ImproperlyConfigured: 处理办法 import os os.environ['DJANGO_SETTINGS_MOD ...

随机推荐

  1. Curling 2.0(DFS简单题)

    题目链接: https://vjudge.net/problem/POJ-3009 题目描述: On Planet MM-21, after their Olympic games this year ...

  2. UIKit 框架之UIView二

    下面这些都是UIView一些基本的东西,具体的可以参考UIKit 框架之UIView一博客 一.自定义一个View // // MyView.m // UIView // // Created by ...

  3. Java 并发编程常识 —— by 梁飞

    参考 :梁飞 并发编程常识

  4. .4-浅析webpack源码之convert-argv模块

    上一节看了一眼预编译的总体代码,这一节分析convert-argv模块. 这个模块主要是对命令参数的解析,也是yargs框架的核心用处. 生成默认配置文件名数组 module.exports = fu ...

  5. windows7 资源管理器无法显示常用

    1.windows7 资源管理器无法显示常用 2.windows7 资源管理器无法附加的解决办法. 删除以下文件夹内的所有文件即可%APPDATA%\Microsoft\Windows\Recent\ ...

  6. java中带参数的try(){}语法

    带资源的try语句(try-with-resource)的最简形式为: try(Resource res = xxx)//可指定多个资源 { work with res } try块退出时,会自动调用 ...

  7. C#:ORM--实体框架EF(entity framework)(2)

    有三种不同的模式可以在您的应用中使用EF框架 Database First Code First ModelFirst Db-First 在DbFirst时,你使用VS中的EDM向导或使用EF命令来从 ...

  8. 彻底理解ReentrantLock

    5.ReentrantLock的介绍 ReenTrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁,支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁 ...

  9. 关于__int64的使用!

    关于__int64的使用! 类型  long long __int64 intmax_t 格式 %lld %I64d %I64d 在Dev C++中,三种类型均需用%I64d格式输出 ,c语言中int ...

  10. Three.js开发指南---粒子和粒子系统(第七章)

    使用粒子可以很容易的创建很多细小的物体,例如雨滴雪花等 本章主要内容: 1 使用ParticleBasicMaterial(基础粒子材质)来创建和设计粒子 2 使用ParticleSystem来创建一 ...