python's twenty eithth day for me 模块和包
模块:
什么是模块:
常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀,但其实import加载的模块分为四个通用类别:
1,使用python编写的代码(.py文件)
2,以被编译为共享库或DLL的C或C++扩展。
3,包好一组模块的包。
4,使用C编写并链接到python解释器的内置模块。
import:
import 模块名:
1,导入一个模块。
2,相当于这个模块从上到下一次被执行了。
3,同一个模块不会被多次导入。
import my_module
# 使用模块中的属性或方法时:模块名.方法名() 模块名.属性名
print(my_module.money) # 100 # 使用模块中的属性名或方法名。
my_module.func() #
1,import my_module 模块,首先创建一个属于my_module的内存空间
2,加载my_module模块中的所有代码
3,将my_module模块中的名字方法放在my_module的命名空间中
import...as...:将...模块导入命名为...
import my_module as m
print(m.money) #
m.func() #
inp = input('json or pickle >>>')
if inp == 'json':
import json as m
elif inp == 'pickle':
import pickle as m
dic = {'k':'v'}
print(m.dumps(dic))
print(m.loads(m.dumps(dic)))
import 可一次导入多个模块:不推荐使用。
import hashlib,json,pickl
python PEP8规范:
1,每一行 import 应该导入一个模块。
2,如果不是必要的需求,所有的模块都应该在文件的顶端导入。
3,关于导入模块的顺序,先导入内置的,再导入扩展,最后导入自定义。
导入模块是将模块放入到 sys.modules 中,使用变量的时候看的是全局命名空间globals().
import sys
import my_module
print(globals())
print(sys.modules)
from 模块名 import 方法名或者属性名:
1,导入的名字直接属于全局,但是指向模块的名字所在的内存空间
2,导入的名字如果是是函数或者方法,引用了全局的变量,仍然使用模块中的变量
3,导入的名字和全局的名字是一样的,谁最后抢占到就是谁的
from my_module import money,func
# 这种导入就不能使用模块名.属性名或方法名了,否则会报错。
# 这样导入的属性或者方法名就属于全局变量,可直接调用。
print(money) # 100 此时是模块局部中的money
money = 999
print(money) # 999 先加载模块中的money,然后加载本全局变量中的money会将模块中的覆盖
fu nc() # 100 # 用到的变量仍然是局部的变量。
from 模块 import * : 默认会把模块中所有名字都导入到全局:
from my_module import *
print(money)
func()
* 和 __all__配合使用:在被导入模块中如果有__all__ = [‘属性名’,‘方法名’],则只能调用__all__列表中拥有的名字。其他的都不可调用。
python's twenty eithth day for me 模块和包的更多相关文章
- Python 3基础教程20-Python中导入模块和包
本文介绍Python中导入模块和包 #目录: # 导入模块和包--- # | # 上级包.上级模块.导入模块和包的init模块----- # | # 同级包.同级模块.上级包的init模块.test模 ...
- python 模块化管理,导入自己的模块(包)
很多东西似懂非懂,或者当时看懂了,但是感觉不是很重要,经常不用,时间久了,也就变得似懂非懂了.今天被某度电话面试问道一个问题,就是模块倒入,其实我之前也是很仔细的研究过的,不过由于平时做的东西太简单, ...
- 第10.11节 Python模块和包小结
Python的模块就是一个独立的Python文件,Python的包是一些功能相关的Python文件放到一个目录下进行统一管理的文件管理结构,包本质上是模块,加载包就是加载包下特定的模块文件__init ...
- python's twenty ninthday for me 模块和包
模块 和 脚本的 区别: 如果一个py文件被导入了,就是一个模块. 如果这个py文件被直接执行,这个被直接执行的文件就是一个脚本. 模块:1,没有具体的调用过程.2,能对外提供功能. pyc文件: ...
- 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 ...
- Windows下用Python 3.4+自带的venv模块创建虚拟环境
Python 3.4+自带了venv模块,用于创建虚拟环境,每个虚拟环境都可以安装一套独立的第三方模块. 本文在Windows 10上操作. 1.创建一个虚拟环境: D:\>mkdir test ...
随机推荐
- 5.6 WebDriver API实例讲解(41-50)
41.操作Web页面的滚动条 (1)滑动页面的滚动条到页面的最下面. (2)滑动页面的滚动条到页面的某个元素. (3)滑动页面的滚动条向下移动某个数量的像素. package apiSample; i ...
- Ajax基础(五)--封装库
jQuery ajax请求的基本语法: 一.封装为对象: ajax.txt代码: {"id":"102","username":" ...
- [转]HTTP协议通信原理
本文转自<HTTP协议通信原理> 了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客 ...
- 最详细的虚拟机安装centos7教程
参考网站:https://jingyan.baidu.com/article/b7001fe1d1d8380e7382dd72.html 安装vmware10,vmware是收费的,作为学习,我介意还 ...
- oracle 常用的系统表查询
(转自:http://blog.csdn.net/marshalchen/article/details/6552103) select * from user_tab_cols where colu ...
- Lua基础---lua字符串库函数详解,实例及正则表达式
参考这个网友写的,比较简单容易理解. http://blog.csdn.net/wlgy123/article/details/49206183
- mysql的5.6版本支持分区吗?
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/72291698 本文出自[我是干勾鱼的博客] 我们知道,查看mysql是否支持分区 ...
- FlycoTabLayout 从头到脚
简介 FlycoTabLayout,是一个比Google原生TabLayout 功能更强大的TabLayout库.目前有3种TabLayout: SlidingTabLayout CommonTabL ...
- js实现checkbox组 全选和取消全选
做后台管理程序时,用到一个checkbox组的全选和取消全选的功能, 主要是逻辑上的坑,理清后大概是: 1.全选点击后,小弟1~4都要选上,点击取消,小弟们也要取消 2.只要有一个小弟取消时,全选要取 ...
- Raspberry Pi 配置
资料 教程 <树莓派使用指南> 系统盘制作 插上电源,连上HDML线,计科