模块概念

在Python中,一个.py文件就称之为一个模块(Module)。使用模块组织代码,最大的好处是大大提高了代码的可维护性

模块一共三种:python标准库、第三方模块、应用程序自定义模块。

相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

模块导入

import语句

1 import module1[, module2[,... moduleN]

使用import语句时候,Python解释器通过sys.path的路径搜索。

每次import的时候,都会相应的开辟内存空间存放被import的内容,但是与调用import的文件开辟的内存空间相互独立。例如import foo.py在新建的名称空间里执行源文件(foo.py)代码时,所有对全局名称空间的引用或修改,都是以foo.py为准。

注意:

一个模块可以在当前位置import多次,但是只有第一次导入会执行内容,其他的都为引用内存

更改调用名称:

1 import logging as log
2 log.critical("www")

from...import语句

1 from modname import name1[, name2[, ... nameN]]

这个声明不会把整个modulename模块导入到当前的命名空间中,只会将它里面的name1或name2单个引入到执行这个声明的模块的全局符号表。

包的调用

为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。

每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。调用包就是执行包下的__init__.py文件。

跨包调用(当前目录下有modulepack1包):

1 from modulepack1[.modulepack2] import module

如果当前目录下能够找到要调用的包,可以直接from包import模块,如果当前目录找不到要调用的包,需要向sys.path添加包的所在绝对路径。

import一个包名,就等于执行了这个包下的__init__文件。

示例:

在nod1里import  hello是找不到的,需要手动添加包路径,如果找到那是因为pycharm给加了不必要的路径,以命令行执行为准。

1 import sys,os
2 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  #__file__获取执行文件相对路径,整行为取上一级的上一级目录
3 sys.path.append(BASE_DIR)  #添加路径
4 import hello
5 hello.hello1()

模块调用测试

1 if __name__=='__main__':  #__name__方法判断
2     print('ok')

在一个py模块直接执行print(__name__)会输出__main__,表示当前这个文件属于执行文件,如果从其他的py模块中导入一个py模块,执行被导入的py模块中的print(__name__)会输出被导入的模块的模块名称,那么if判断就不会成功,所以导入的时候不会执行判断内的代码。

主要用在调试功能,即一个模块被调用的时候不执行内容,而自己调试模块的时候可以顺利的执行模块内容。

转载于:https://www.cnblogs.com/lidagen/p/7090777.html

python基础之import模块导入和包的调用相关推荐

  1. python导入模块的变量_python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 for ...

  2. 合法的python变量名import_python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 imp ...

  3. python之模块导入和包

    一.何为模块 1.一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.模块目的和函数,对象等一样,是为了代码的复用性而存在的.即一个py程序写了很多功能,也可 ...

  4. Python快速编程入门#学习笔记01# |第一章 :Python基础知识 (Python发展历程、常见的开发工具、import模块导入)

    全文目录 ==先导知识== 1 认识Python 1.1.1 Python的发展历程 1.1.2 Python语言的特点 2. Python解释器的安装与Python程序运行 1.2.1 安装Pyth ...

  5. python怎么导入包-Python模块导入与包构建最佳实践

    [TOC] 最开始写程序的时候,都是一个文件里输入几行源码(python 的一个 web 框架bottle就特别强调自己是单文件框架).随着程程式变大变复杂,一个文件很难承载如此多的功能,因此将代码拆 ...

  6. 5、python基础了解:模块、dir()函数、包

    文章目录 前言 一.模块 1.1.模块介绍 1.2.模块详解 二. 标准模块 三.dir() 函数 四.包 python官方文档链接 python官方标准库链接 前言 余生平,怎一个懒字了得. 一.模 ...

  7. Python全栈开发之路 【第六篇】:Python基础之常用模块

    本节内容 模块分类:好处:标准库:help("modules") 查看所有python自带模块列表第三方开源模块:自定义模块:模块调用: import modulefrom os ...

  8. Python基础概念_6_模块

    模块 7 模块 7.1 简介 在上一章里我们知道了如何创建和使用函数.如果你想要在其它程序中重用很多函数,那么你该如何实现呢?你可能已经猜到了,答案是使用本章要讲的模块. 模块可以让你能够有逻辑的组织 ...

  9. 在python中用import或者from_[转]python基础之---import与from...import....

    简单说说python import与from...import....(python模块) 在python用import或者from...import来导入相应的模块.模块其实就一些函数和类的集合文件 ...

最新文章

  1. 基于SSM实现商户管理系统
  2. python画人脸关键点
  3. 策略模式(Header-First笔记)
  4. 创新式开发探索(一) —— 开篇
  5. mysql max_allowed_packet 设置过小导致记录写入失败
  6. 使用命令行快速找出class文件所在的jar文件
  7. 升序排序中国_干货满满!6行python代码挑战展示2020下半年中国最娱乐的人气男明星人气排行榜top10!...
  8. LeetCode刷题记录_最长公共前缀
  9. 阿格尔克劳奇四分钟逆转 利物浦2-1小胜西汉姆联
  10. (笔记)电路设计(六)之稳压二极管的应用
  11. @cacheable 设置过期时间_Redis 的过期策略是如何实现的?
  12. Linux进程的管理与调度(六) -- Linux下1号进程的前世(kernel_init)今生(init进程)
  13. 新版Excel和Word全屏打印预览的设定方法
  14. C# 零基础入门知识点汇总
  15. STM32实战(1):搭建模板工程
  16. windows渗透利器——PentestBox的内功和攻击力
  17. 灵遁者:写在33岁之初
  18. 大疆无人机飞行+摄影测量航测不完全教程
  19. 架构君公众号推荐 第一期
  20. elementUI container布局不生效解决办法

热门文章

  1. jquery 判断一个对象是否存在
  2. 线程访问临界区的问题 实例,需解决
  3. Bytes int java_Java Bytes.readInt方法代码示例
  4. celery 停止任务_celery异步任务框架
  5. oracle字符串转in方法,Oracle 逗号分割的字符串转换为可放入in的语句
  6. 单片机can通信可以接多少个设备_51单片机的多机并行通信系统应用
  7. python输出浮点数_Python的数据类型转换,那个很多人知道的知识,你知道吗?
  8. 点击鼠标左键 自动锁定计算机图标,鼠标一按左键桌面图标就消失了怎么办_为什么按鼠标左键时桌面图标都不见了...
  9. hashmap中用红黑树不用其他树_HashMap面试专题:常问六题深入解析
  10. python经典题库和答案_吐血总结,Python经典面试题及答案