模块and包
一.模块
1.import 加载的模块四个通用类别
1.使用python编写的py文件
2.已被编译为共享库或者DLL或者C\C++的扩展
3.包好一组模块的包
4.使用c编写并连接到python解释器的内置模块
2.导入模块时python的流程
1.先判断当前导入的模块是否已经导入过
2.如果导入过,不会重新导入该模块
3.如果没有导入过,给导入的模块创建新的名称空间
4.在新创建的名称空间中运行该模块中的代码
5.创建模块的名字,方便后面的引用
3.if __name__ == '__main__'的作用
如果在自己py中运行,__name__ 就是 __main__
如果被其他py导入运行,__name__就是导入模块的名字
这样可以控制在别人导入的时候执行if __name__ == "__main__":下面的代码
4.导入模块的规则
1.所有的模块导入都要写在最上面,
2.先引入内置模块
3.再引入扩展模块
4.最后引入自己写的模块
5.导入模块的方式
1.import xxx 导入xxx ,也可以导入xxx中的东西
2.from xxx import yyy 从xxx中导入yyy # 注意重名 重名了用的是后面的
3.from xxx import * 从xxx中导入全部 不推荐,这样写注意名字会不会重名
4.import xxx as x 导入xxx并命名为x
6.自定义模块名注意事项
自己写的模块名千万不要和系统的内置模块重名
二.包
一个表达式 -> 一条语句 -> 语句块 -> 函数 -> 类 -> 模块 -> 包
包就是我们的文件夹,包内可以写很多个模块
包,模块的查找路径:sys.path 随动 跟着你的启动文件所在位置变化
1.绝对导入(推荐)
跟模块一样
2.相对导入(大项目推荐)
. 表示本层
.. 表示上一层
相对导入注意事项:
存在相对导入语句的模块,是不能直接运行的.因为一个模块必须有包结构且只能导入它的顶层模块内部的模块,所有一个模块被直接运行,则它自己为顶层模块,不存在层次结构,所以找不到其他的相对路径.
模块and包的更多相关文章
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...
- Python中函数、类、模块和包的调用
初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...
- Python模块和包
模块和包是python组织代码的基本方式. 模块: python的每一个脚本文件都可称之为模块,模块的名称就是脚本的文件名.例如当我们写了一个test.py的脚本文件,则可以在同目录下的另外一个脚本m ...
- python模块与包的导入
1. 模块与包的区别 模块,即module,一个包含python语句的.py文件就是一个模块!每个源代码文件都会自动成为模块!没有额外的语法用来声明模块. 包,又称模块包,即module packag ...
- python模块及包的导入
一.模块 通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py".".pyo".".pyc".&q ...
- 简述Python模块和包
我们常常会使用别人写的包,假如我们使用的是Python3.4版本,安装在windows的C盘根目录下,那么外部的包一般放在:C:\Python34\Lib\sit-packages下,此目录下有以.p ...
- python 深入模块和包
模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...
- Python中的模块与包
标准库的安装路径 在import模块的时候,python是通过系统路径找到这些模块的,我们可以将这些路径打印出来: >>> pprint.pprint(sys.path) ['', ...
- Python类、模块、包的区别
类 类的概念在许多语言中出现,很容易理解.它将数据和操作进行封装,以便将来的复用. 模块 模块,在Python可理解为对应于一个文件.在创建了一个脚本文件后,定义了某些函数和变量.你在其他需要这些功能 ...
- python学习笔记13(模块、包)
在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 模块文件以.py后缀结 ...
随机推荐
- @RequestMapping使用须知
----------------------siwuxie095 @RequestMapping 使用须知 使用 @RequestMapping 注解映射请求路径 即 你可以使用 @RequestMa ...
- 33 【kebernetes】一个错误的解决方案
在安装或者重新安装kubernetes时,我碰到了这个错误: Unable to update cni config: No networks found in /etc/cni/net.d/ 这个错 ...
- stark组件之路由分发【模仿Django的admin】
一.先看下django的admin是如何进行路由分发的 1.先看下django的admin的url路径有哪些 其实很简单,假如有一个书籍表,那么每张表对应四个url,增.删.改.查 查看的url ht ...
- 【RabbitMQ】——5种队列(转)
原文地址:https://blog.csdn.net/u012654963/article/details/76417613 应用RabbitMQ,我们可以根据需求选择5种队列之一. 一.简单队列 P ...
- string+和stringbuffer的速度比较
public class Main{ public static void main(String[] args){ /* 1 */ String string = "a" + & ...
- Junit4知识梳理
一.junit官网 junit4:http://junit.org/junit4/ junit5:http://junit.org/junit5/ 二.github junit4: https://g ...
- PAT 1067 试密码(20)(代码)
1067 试密码(20 分) 当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死.本题就请你实现这个小功能. 输入格式: 输入在第一行给出一个密码(长度 ...
- hdu 2571 (命运) 那个配图女神
http://acm.hdu.edu.cn/showproblem.php?pid=2571 枚举每一个点,找出按照题目要求的这个点的上一点的最大值,合并到当前点,注意只取前面的一种情况 #inclu ...
- linux查看文件被哪个进程占用?
1> 如果文件是端口号 netstat -ntlp | grep portNum [root@localhost root]# netstat -ntlp Active Internet con ...
- BZOJ1179或洛谷3672 [APIO2009]抢掠计划
BZOJ原题链接 洛谷原题链接 在一个强连通分量里的\(ATM\)机显然都可被抢,所以先用\(tarjan\)找强连通分量并缩点,在缩点的后的\(DAG\)上跑最长路,然后扫一遍酒吧记录答案即可. # ...