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 ...
随机推荐
- 十 web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令
Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --upgrade pip2.安装,wheel(建议网络安装) pip install wheel ...
- maven setting仓库镜像
国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用. 最新更新:2016年11月11日 18:05:40 阿里云提供Maven私服,我把配置文件贴一下,自 ...
- Spring Struts2 整合
Spring整合Struts2 整合什么?——用IoC容器管理Struts2的Action如何整合?第一步:配置Struts21.加入Struts2的jar包.2.配置web.xml文件.3.加入St ...
- LeetCode OJ:Pow(x, n) (幂运算)
Implement pow(x, n). 幂运算,简单的方法snag然很好实现,直接循环相乘就可以了,但是这里应该不是那种那么简单,我的做法使用到了一点递归: class Solution { pub ...
- position值详情
1.absolute属性: 英文直译成汉语的解释有:绝对,独立的.显然在做为css中position属性的值时“绝对”这个意思更恰当一些.他的作用是:生成绝对定位的元素,相对于static 定位以外的 ...
- Apk大瘦身
Android的apk文件越来越大了这已经是一个不争的事实.在Android 还是最初版本的时候,一个app的apk文件大小也还只有2 MB左右,到了现在,一个app的apk文件大小已经升级到10MB ...
- 在 Ubuntu 上搭建 Hadoop 分布式集群 Eclipse 开发环境
一直在忙Android FrameWork,终于闲了一点,利用空余时间研究了一下Hadoop,并且在自己和同事的电脑上搭建了分布式集群,现在更新一下blog,分享自己的成果. 一 .环境 1.操作系统 ...
- 持久层框架:MyBatis 3.2(2)
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得.SqlSessi ...
- dojo chart生成函数
写了一个函数,就是通过传递参数,生成图表,代码如下: /** * created by LZUGIS * @param container * @param type * @param data * ...
- 在Linux上部署DotNet Core项目的时候发现Apache无法转发Kestrel的5000端口的问题
CentOS服务器上使用Apache托管Dotnet Core2,服务启动了,端口也打开了.在本地使用curl命令可以访问5000端口的网页内容,但是访问Apache的端口却无法获取到网页的内容.想起 ...
