第8章 模块

用户在程序中定义一次函数而重用代码,如果用户想在其他程序中重用很多函数,可以通过使用模块的方式。

模块就是一个包含了所有用户定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以 .py 为扩展名。模块可以从其他程序 输入 以便利用它的功能。

使用 sys 模块

# -*- coding: utf-8 -*-
# Filename: using_sys.py import sys print 'The command line arguments are:'
for i in sys.argv:
print i print '\n\nThe PYTHONPATH is', sys.path, '\n'

以上使用 sys 模块,使用的是 import 语句。

sys 模块包含了与 python 解释器和它的环境有关的函数。

如何执行 import sys 语句:

1、在 sys.path 变量所列目录中寻找 sys.py 模块

2、找到 sys.py 模块,运行 sys.py 主块中的语句,用户可以使用该模块

注意:初始化过程仅在第一次输入模块的时候进行

模块变量通过点号指明,如:sys.argv,避免不同模块中同名变量的冲突

sys.argv 变量是一个 字符串 列表,包含了 命令行参数 的列表,使用命令行传递给你程序的参数。其中脚本名称总是 sys.argv 列表的第一个参数。此处,运行模块时执行命令被作为参数传递给程序,sys.argv = python d:\python\using_sys.py we are arguments

sys.path, 包含输入模块的目录名列表,与 PYTHONPATH 环境变量相同。用户可以直接输入位于当前目录的模块,否则要把模块放在 sys.path 的任一目录中。

字节编译的 .pyc 文件

字节编译的文件 .pyc 可以使输入模块更加快一些,与python 变换程序的中间状态有关。

字节编译文件 .pyc 与平台无关,常用于从其他程序输入该模块时。

from..import 语句

该语句用来在程序中直接使用某个模块的变量、函数等。。。。

通过使用 from sys import argv ,可以在程序中直接输入 argv 变量,不需要输入 sys.argv。

通过使用 from sys import * ,可以使用所有 sys 模块使用的名字

一般避免使用 from..import 而使用 import 语句,可以使程序易读,也可避免名称冲突。

模块的 __name__

当一个模块第一次输入时,该模块的主块被运行。假如只想程序本身被使用的时候运行主块,而被其他模块输入时不运行主块,可以通过模块的 __name__ (模块名称)属性完成。

# -*- coding: utf-8 -*-
# Filename: using_name.py if __name__ == '__main__':
print 'This program is being run by itself.'
else:
print 'I am being imported from another module'

每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行,我们可以进行相应的恰当操作。

用户自定义模块

# -*- coding: utf-8 -*-
# Filename: mymodule.py def sayhi():
print 'Hi, this is mymodule speaking.' version = '0.1'
import 语法版本
# -*- coding: utf-8 -*-
# Filename: mymodule_demo.py import mymodule mymodule.sayhi()
print 'Version is', mymodule.version

from..import 语法版本
# -*- coding: utf-8 -*-
# Filename: mymodule_demo2.py from mymodule import sayhi, version sayhi()
print 'Vesion is', version

dir() 函数

内建函数 dir() 可以列出模块定义的标识符(函数、类、变量)。

当用户为 dir() 提供一个模块名时,返回模块定义的名称列表。如果不提供参数,返回当前模块中定义的名称列表。

首先,在输入的 sys 模块上使用dir,它包含一个庞大的属性列表。
然后,不给 dir 函数传递参数而使用它——默认地,它返回当前模块的属性列表。

注意,输入的模块同样是列表的一部分。
del 语句——运行后被用来 删除 一个变量/名称。

概述:模块的用处在于它能为你在其他程序中重用提供服务和功能。附带的标准库就是这样一组模块。

A Byte of Python 笔记(6)模块的更多相关文章

  1. A Byte of Python 笔记(12)python 标准库:sys、os,更多内容

    第14章 python 标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块. sys 模块 sys 模块包含系统对应的功能.如 sys.argv 列表包含命令行参数. # ...

  2. A Byte of Python 笔记(10)输入/输出:文件和储存器

    第12章  输入/输出 大多数情况下,我们需要程序与用户交互.从用户得到输入,然后打印一些结果. 可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,可以使用多种多样的 s ...

  3. A Byte of Python 笔记(9) 面向对象编程

    第11章  面向对象编程 面向过程:根据操作数据的函数或语句块来设计程序. 面向对象(OOP, object-oriented programming):把数据和功能结合起来,用对象包裹组织程序. 类 ...

  4. A Byte of Python 笔记(5)函数:定义、形参、局部变量、默认参数、关键参数

    第7章  函数 函数是重要的程序段.它们允许你给一块语句一个名称,然后你可以在程序的任何地方使用这个名称任意多次地运行这个语句块.这被称为 调用 函数. 定义函数 函数通过 def 关键字定义.def ...

  5. python笔记25-sys模块

    import sys#sys.argv命令行参数List,第一个元素是程序本身路径# sys.exit('xxxxx')#退出程序,正常退出时exit(0)# print(sys.version) # ...

  6. python笔记6 模块与包 程序开发规范 包 re sys time os模块

    模块与包 python 模块首引用加载到内存,如果再次引用此模块,直接从内存中读取. python文件分为:执行文件(解释器运行的文件),被引用文件(import) 模块引用一共发生了3件事: 1.他 ...

  7. A Byte of Python 笔记(3)运算符和表达式

    第5章 运算符与表达式 大多数语句(逻辑行)都包含表达式.例子,如 2 + 3.一个表达式可以分解为运算符和操作数. 运算符 运算符 名称 说明 例子 + 加 两个对象相加 3 + 5得到8.'a' ...

  8. A Byte of Python 笔记(11)异常:try..except、try..finally

    第13章 异常 当你的程序中出现某些 异常的 状况的时候,异常就发生了. 错误 假如我们把 print 误拼为 Print,注意大写,这样 Python 会 引发 一个语法错误. 有一个SyntaxE ...

  9. A Byte of Python 笔记(8)

    第10章  解决问题——编写一个 python 脚本 程序功能:为所有重要文件创建备份 设计: 1.需要备份的文件和目录由一个列表指定 2.备份应该保存在主备份目录中 3.文件备份称一个 zip 文件 ...

随机推荐

  1. swig模板下拉框应用

    <div class="form-group"> <label><span class="fa fa-asterisk red"& ...

  2. Brew install for mac

    安装命令例如以下: curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --st ...

  3. 关于Lambda表达式访问外部变量

    在<C#高级编程>一书中提到通过Lambda表达式可以访问Lambda表达式块外部的变量 ,这是一个很好的功能(类似Js中的 闭包).但是如果没有正确的使用,会非常危险. 比如下面的事例中 ...

  4. HTML之学习笔记(九)表单

    html的表单标签是一个系列,用开闭的<form>标签包裹起来的组合.表单的作用是将我们要向服务器提交数据的数据包含起来,然后提交到服务器处理.(使用表单是浏览器提交客户端数据到服务端的方 ...

  5. java 对象数组定义

    下面代码实现了定义一个数组对象 public class Student { private String username; private int num; public Student(Stri ...

  6. PLSQL连接Oracle数据库,使用instantclient_10_2客户端

    使用instantclient_10_2作为PLSQL客户端配置步骤如下:1.将instantclient_10_2文件夹copy到PLSQL的安装目录下(如D:\Program Files\PLSQ ...

  7. C语言函数可变参数列表

    C语言允许使用可变参数列表,我们常用的printf函数即为可变参数函数,C标准库提供了stdarg.h为我们提供了这方面支持:该头文件提供了一些类型和宏来支持可变参数列表,包括类型va_list,宏v ...

  8. python读取中文文件编码问题

    python 读取中文文件后,作为参数使用,经常会遇到乱码或者报错asii错误等. 我们需要对中文进行decode('gbk') 如我有一个data.txt文件有如下内容: 百度 谷歌 现在想读取文件 ...

  9. Qt 不规则窗体的实现(构造函数里setPaletteBackgroundPixmap后设置setMask)

    Skin(表皮) 是制作比较酷的软件界面的有利工具. 一个软件可以同时使用多种Skin 以取得不同的外观, 使同一个软件有截然不同的风格. 用户可以根据自己的喜好选择 不同的风格. 本节介绍使用 Qt ...

  10. 淘宝数据库连接池 druid 性能评测

    想必大家知道淘宝在双十一惊人表现,搜索群里有哥们对淘宝的链接池进行了测试,废话不多说,直接上测试结果,结果如下:在Spring中使用方法<bean id="dataSource&quo ...