Python(28)---模块和包的基本概念
一、模块
定义:在python中,一个 .py 文件就称为一个模块
使用模块的好处:最大的好处就是提高了代码的可维护性
分类(三种):
- python标准库
- 第三方模块
- 应用程序自定义模块
模块导入方法:

#cal.py
def add(x,y)
return x + y
def sub(x,y)
return x - y
1. import 语句
import module1[, module2[,.... moduleN]]
#举例:
#test.py
import cal
print(cal.add(3,5))
print(cal.sub(3,5))
注意:
import 做了两件事情:一是运行cal函数;第二是引入变量名
2. from...import 语句
from modulename import name1[, name2[, ... nameN]]
注意:
这个声明不会把整个modulename模块导入到当前的命名空间中,
只会将它里面的name1或者name2单独引入到执行这个声明的模块的全局符号表。
#举例:
#test.py
from cal import add
from cal import sub
print(add(3,5))
print(sub(3,5))
3. from...import*语句
from modulename import*
#举例:
#test.py
from cal import*
print(add(3,5))
print(sub(3,5))
(*代表一切,但是不推荐这种模块导入方式)
关于路径的补充:
当我们使用import语句时,python解释器是怎么样找到对应的文件的?
答案是解释器有自己的搜索路径,存在 sys.path里。
import sys
print(sys.path)
#存放的是执行文件的路径
二、包(package)
1. 基本概念
为了避免模块名相同带来的冲突,python引入按照目录组织模块的方法,称为包(package)
每个包目录下面都会有有个 __init__.py 的文件,这是区别普通目录的。如果没有__init__.py ,则不是一个包
__init__.py 可以是空文件,也可以有python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字
引入包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。
2. 包之间多层点的调用
举例:
#main.py
def add(x, y):
return x + y
def sub(x, y):
return x - y
调用方式一:
#test.py
from my_module.web1.web2.web3.main import sub
print(sub(2,5))
调用方式二:
#test.py
from my_module.web1.web2.web3 import main
print(main.add(2,5))
注意:包只要被调用,就是执行该包的 __init__.py 文件
Python(28)---模块和包的基本概念的更多相关文章
- 第10章 Python的模块和包
前面几章介绍的Python基础知识,相关案例都是以单源代码文件为例来说明的,这种单源代码文件在Python中就是模块,每个模块文件都可以被其他应用导入,Python正是通过模块导入技术来实现很灵活的功 ...
- 一文搞懂 Python 的模块和包,在实战中的最佳实践
最近公司有个项目,我需要写个小爬虫,将爬取到的数据进行统计分析.首先确定用 Python 写,其次不想用 Scrapy,因为要爬取的数据量和频率都不高,没必要上爬虫框架.于是,就自己搭了一个项目,通过 ...
- Python之模块和包导入
Python之模块和包导入 模块导入: 1.创建名称空间,用来存放模块XX.py中定义的名字 2.基于创建的名称空间来执行XX.py. 3.创建名字XX.py指向该名称空间,XX.名字的操作,都是以X ...
- python中模块,包,库的概念
模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...
- (Python )模块、包
本节开始学习模块的相关知识,主要包括模块的编译,模块的搜索路径.包等知识 1.模块 如果我们直接在解释器中编写python,当我们关掉解释器后,再进去.我们之前编写的代码都丢失了.因此,我们需要将我们 ...
- Python 基金会 —— 模块和包简介
一.模块(Module) 1.模块的作用 在交互模式下输出的变量和函数定义,一旦终端重新启动后,这些定义就都不存在了,为了持久保存这些变量.函数等的定义,Python中引入了模块(Modul ...
- python中模块,包,库
模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...
- Python之模块和包学习
模块简介 python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题.模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象 ...
- Python中 模块、包、库
模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...
随机推荐
- 网络编程之IO模型
IO模型的分类 blocking IO:阻塞IO nonblocking IO:非阻塞IO IO multiplexing:IO多路复用 signal driven IO:异步IO 通常情况下IO默认 ...
- swift -基础语法
/** * 1.变量 */ let count1 = 11; print(count1); var count ...
- CloneZilla 恢复系统报错Waiting for device dev/disk/by-id/.....
利用CloneZilla备份好系统,在恢复系统时候显示恢复成功,但在重启系统时出现如下错误: 出现问题的原因: 原因在于suse系统的一个新的默认设置,这个新的默认设置为存储设备由原来的名称相关改为I ...
- IntelliJ IDEA 2017版 spring-boot2.0.4+mybatis+Redis处理高并发,穿透问题
一.当采用reddis缓存的时候,如果同时,一万次访问,那么就会有10000次访问数据库所以就会对数据库造成巨大压力,这时候,就要用到线程 1.方法体上加锁(优点,防护住了并发锁,缺点降低了内存效率) ...
- iframe父子元素获取
jquery.js调用iframe父窗口与子窗口元素的方法 1. jquery在iframe子页面获取父页面元素代码如下: $("#objid",parent.document) ...
- ubuntu 出现device not managed,解决方法
1. 编辑/etc/NetworkManager/NetworkManager.conf: sudo vi /etc/NetworkManager/NetworkManager.conf将其中的man ...
- typecho 调用评论最多热门文章
在当前主题的functions.php文件中添加以下函数代码: function getHotComments($limit = 10){ $db = Typecho_Db::get(); $resu ...
- hibernate之三种时态之间的转换
判断状态的标准 oid 和 session相关性 public class HibernateUtils { private static SessionFactory sessionFact ...
- 第十四个目标 (fzu)
http://acm.fzu.edu.cn/contest/problem.php?cid=151&sortid=8 Problem Description 目暮警官.妃英里.阿笠博士等人接连 ...
- 种类并查集——带权并查集——POJ1182;HDU3038
POJ1182 HDU3038 这两个题比较像(一类题目),属于带权(种类)并查集 poj1182描绘得三种动物种类的关系,按照他一开始给你的关系,优化你的种类关系网络,最后看看再优化的过程中有几处矛 ...
