文档章节

Python基础(6)-初识模块和字节码

果壳小少
 果壳小少
发布于 2017/04/16 19:41
字数 592
阅读 14
收藏 0

6.1-初识模块:

在Python中,一个.py文件就称之为一个模块(Module)。

使用模块的好处:

  • 最大的好处是大大提高了代码的可维护性。
  • 编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三种:

  • Python内置标准模块(又称标准库)
  • 业内开源的模块
  • 程序员自己开发的模块

说明:

import语句作用就是用来导入模块的,它可以出现在程序中的任何位置。

导入模块例子:

1.py文件:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import hello

hello.py文件:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
print("hello,world")

运行结果:

输入图片说明

执行脚本传入参数:

Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行python脚本时传入的参数。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
print(sys.argv)

运行结果:

输入图片说明

6.2-初识字节码:

执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。

输入图片说明

第一次在没有字节码的时候,执行导入的.py文件时,它会自动生成一个字节码,以后在执行程序时会先在当前目录下寻找有没有同名的pyc文件,如果找到了,则直接进行运行,这样执行的速率就快了,否则重复上面的工作。

因为Python认为只要是import导入过来的文件,就是可以被重用的,那么它就会将这个文件编译成pyc文件。

python会在每次载入模块之前都会先检查一下py文件和pyc文件的最后修改日期,如果不一致则重新生成一份pyc文件,否则就直接读取运行。

输入图片说明

代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。(任何字节码通过反编译都可以得到代码)

© 著作权归作者所有

果壳小少
粉丝 0
博文 7
码字总数 3387
作品 0
济南
私信 提问
Python开发(基础):初识Python

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quo...

wbb827
2018/07/03
0
0
Python第三章模块-张明阳-专题视频课程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a2011480169/article/details/83580545 Python第三章模块—142人已学习 课程介绍 介绍Python在项目当中常用的...

安静的技术控
2018/04/20
0
0
zg手册 之 python2.7.7源码分析(4)-- pyc字节码文件

什么是字节码 python解释器在执行python脚本文件时,对文件中的python源代码进行编译,编译的结果就是byte code(字节码) python虚拟机执行编译好的字节码,完成程序的运行 python会为导入的模...

东昕
2014/09/20
126
0
(转)Python 面试中可能会被问到的30个问题

本次面试面了10几家,拿了3家offer, 总结下本次面试题汇总,送给有需要的人! 作者:KotlinPython 原标题:10 家公司 Python 面试题总结 来源:https://mp.weixin.qq.com/s/CaFybiK3fDG19Z...

实验楼
2018/08/09
0
0
初识 Python: global 关键字

在读这篇文章之前,确保你对 Python 全局、本地和非本地变量 有一定的基础。 global 关键字简介 在 Python 中, 关键字允许你修改当前范围之外的变量。它用于创建全局变量并在本地上下文中更...

作者: Programiz
2018/04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
13
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
9
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
87
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部