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,然后是一些模块文件和 ...
随机推荐
- 【转】ssh-copy-id帮你建立信任
本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc. == 对于做运维的同学来说,给两台UNIX/Linux机器建立ssh信任关系是 ...
- mysql update受影响的行数为0或查询结果为空时
当执行update语句时,如果受影响的行数是0,返回的也是true. $conn = new mysqli(); $sql = "update ..."; $query = $co ...
- s5-15 开放的最短路径优先_OSPF
L-S路由协议的实例—OSPF 开放的路径优先(Open Shortest Path First) 使用图(graph)来表述真实的网络 - 每个路由器/Lan都是一个节点 - 测量代价/量度(met ...
- README.md 编写
Spring Boot Demo =========================== 该文件用来测试和展示书写README的各种markdown语法.GitHub的markdown语法在标准的ma ...
- MySql Cast与Convert函数
两者具体的语法如下: Cast(value as type): Convert(value ,type): type不是都可以滴,可以转换的type如下: 二进制,同带binary前缀的效果 : BI ...
- BZOJ 1029 [JSOI2007]建筑抢修 (贪心 + 优先队列)
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MBSubmit: 5452 Solved: 2422[Submit][Statu ...
- AngularJS实战之路由ui-view
1. 路由(ui-router) 1.1. 环境 1) angular.min.js 2) angular-ui-router-0.2.10.js 3) 确保确保包含ui.router为模块依赖关系. ...
- 使用VBA宏批量修改表格
一.批量修改表格,实现所有表格的宽度根据窗口自动调整. Sub test() ' ' test 宏 ' ' Dim i As Table, N As Integer On Error Resume N ...
- 为什么要用GCD-Swift2.x
为什么要用GCD-Swift2.x 当今世界,多核已然普及.但是APP却不见得很好的跟上了这个趋势.APP 想要利用好多核就必须可以保证任务能有效的分配.并行执行可以让APP同时执行很多 的任务.这个 ...
- Forward团队-爬虫豆瓣top250项目-代码设计规范
组长地址:http://www.cnblogs.com/mazhuangmz/p/7603641.html 成员:马壮,李志宇,刘子轩,年光宇,邢云淇,张良 1.缩进采用一个Tab键 2.大括号:如: ...