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 ...
随机推荐
- pipenv安装库使用国内镜像
pipenv install django超级慢,卡住不动,最后不得不CTRL+C中止 这时有必要改成国内源了,打开Pipfile文件,发现内容是: [[source]] verify_ssl = t ...
- 反汇编工具 objdump的使用简介
arm-linux-objdump -D led.elf > led_elf.dis objdump是gcc工具链中的反汇编工具,作用是由编译链接好的elf格式的可执行程序反过来得到反汇编代码 ...
- Spring AOP(面向切面示例)
什么是AOP?基本概念切面(aspect):横切关注点被模块化的特殊对象.通知(advice):切面必须要完成的工作.切面中的每个方向称之为通知.通知是在切面对象中的.目标(target):被通知的对 ...
- webpack2配置
详细的配置可以参考官网:https://doc.webpack-china.org/guides/ 一开始做项目时都是直接从组里前辈搭建好的脚手架开始写代码,到后来自己写新项目时又是拷贝之前的工程作为 ...
- vi编辑器:命令模式、输入模式、末行模式
1.命令模式(command mode)—执行命令 在该模式中,可以输入命令来执行许多种功能.控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入Insert mode下,或者到 last l ...
- shell与正则表达式
作业一:整理正则表达式博客 已整理完.作业二:grep作业(正则表达式及字符处理) 目标文件/etc/passwd,使用grep命令或egrep 1.显示出所有含有root的行:[root@bogon ...
- LeetCode OJ:Binary Tree Postorder Traversal(后序遍历二叉树)
Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...
- 如何发布二次开发后的openfire源码到linux服务器中
这篇文章是在你已经down了openfire的源码,然后在本地跑起来了,再然后开发了一个自己的插件,想要发布到服务器上.ok这时候出现了一个问题,怎么才能发布到服务器上呢?别急往下看: 1.运行ant ...
- Java基础学习-抽象类
package abstractclass; /* * 抽象类的概述: * 1.抽象类用abstract来修饰方法或者类 * 2.没有具体的方法体的方法便是抽象方法. */ class CF{ pub ...
- pip国内镜像(清华大学镜像)
网上搜到的pip国内镜像大部分是豆瓣的 http://pypi.douban.com/simple/ 但是根本不全,很多包没有 所以推荐清华大学的 https://pypi.tuna.tsinghua ...
