python基础之import模块导入和包的调用
模块概念
在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模块导入和包的调用相关推荐
- python导入模块的变量_python 环境变量和import模块导入方法(详解)
1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 for ...
- 合法的python变量名import_python 环境变量和import模块导入方法(详解)
1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 imp ...
- python之模块导入和包
一.何为模块 1.一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.模块目的和函数,对象等一样,是为了代码的复用性而存在的.即一个py程序写了很多功能,也可 ...
- Python快速编程入门#学习笔记01# |第一章 :Python基础知识 (Python发展历程、常见的开发工具、import模块导入)
全文目录 ==先导知识== 1 认识Python 1.1.1 Python的发展历程 1.1.2 Python语言的特点 2. Python解释器的安装与Python程序运行 1.2.1 安装Pyth ...
- python怎么导入包-Python模块导入与包构建最佳实践
[TOC] 最开始写程序的时候,都是一个文件里输入几行源码(python 的一个 web 框架bottle就特别强调自己是单文件框架).随着程程式变大变复杂,一个文件很难承载如此多的功能,因此将代码拆 ...
- 5、python基础了解:模块、dir()函数、包
文章目录 前言 一.模块 1.1.模块介绍 1.2.模块详解 二. 标准模块 三.dir() 函数 四.包 python官方文档链接 python官方标准库链接 前言 余生平,怎一个懒字了得. 一.模 ...
- Python全栈开发之路 【第六篇】:Python基础之常用模块
本节内容 模块分类:好处:标准库:help("modules") 查看所有python自带模块列表第三方开源模块:自定义模块:模块调用: import modulefrom os ...
- Python基础概念_6_模块
模块 7 模块 7.1 简介 在上一章里我们知道了如何创建和使用函数.如果你想要在其它程序中重用很多函数,那么你该如何实现呢?你可能已经猜到了,答案是使用本章要讲的模块. 模块可以让你能够有逻辑的组织 ...
- 在python中用import或者from_[转]python基础之---import与from...import....
简单说说python import与from...import....(python模块) 在python用import或者from...import来导入相应的模块.模块其实就一些函数和类的集合文件 ...
最新文章
- 基于SSM实现商户管理系统
- python画人脸关键点
- 策略模式(Header-First笔记)
- 创新式开发探索(一) —— 开篇
- mysql max_allowed_packet 设置过小导致记录写入失败
- 使用命令行快速找出class文件所在的jar文件
- 升序排序中国_干货满满!6行python代码挑战展示2020下半年中国最娱乐的人气男明星人气排行榜top10!...
- LeetCode刷题记录_最长公共前缀
- 阿格尔克劳奇四分钟逆转 利物浦2-1小胜西汉姆联
- (笔记)电路设计(六)之稳压二极管的应用
- @cacheable 设置过期时间_Redis 的过期策略是如何实现的?
- Linux进程的管理与调度(六) -- Linux下1号进程的前世(kernel_init)今生(init进程)
- 新版Excel和Word全屏打印预览的设定方法
- C# 零基础入门知识点汇总
- STM32实战(1):搭建模板工程
- windows渗透利器——PentestBox的内功和攻击力
- 灵遁者:写在33岁之初
- 大疆无人机飞行+摄影测量航测不完全教程
- 架构君公众号推荐 第一期
- elementUI container布局不生效解决办法
热门文章
- jquery 判断一个对象是否存在
- 线程访问临界区的问题 实例,需解决
- Bytes int java_Java Bytes.readInt方法代码示例
- celery 停止任务_celery异步任务框架
- oracle字符串转in方法,Oracle 逗号分割的字符串转换为可放入in的语句
- 单片机can通信可以接多少个设备_51单片机的多机并行通信系统应用
- python输出浮点数_Python的数据类型转换,那个很多人知道的知识,你知道吗?
- 点击鼠标左键 自动锁定计算机图标,鼠标一按左键桌面图标就消失了怎么办_为什么按鼠标左键时桌面图标都不见了...
- hashmap中用红黑树不用其他树_HashMap面试专题:常问六题深入解析
- python经典题库和答案_吐血总结,Python经典面试题及答案