第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. 全互联结构DVPN综合配置示例

    以下内容摘自正在全面热销的最新网络设备图书“豪华四件套”之一<H3C路由器配置与管理完全手册>(第二版)(其余三本分别是:<Cisco交换机配置与管理完全手册>(第二版).&l ...

  2. ASP.Net中使用Report Service

    昨天研究以下Report Service,发现SQL Service自带的报表服务器也非常强大, 一,报表在不同的应用中表现形式 参考:http://www.cnitblog.com/yide/arc ...

  3. wcf xml消息客户端cookie

    public override bool Login(string userName, string password) { using (HttpClient client = new HttpCl ...

  4. istringstream和ostringstream的使用方法

    写程序用到istringstream和ostringstream,看了别人的博文,借鉴~~~~~~. iostream 标准库支持内存中的输入/输出,只要将流与存储在程序内存中的 string 对象捆 ...

  5. 数据库MySQL多个数据库服务冲突

    一.目标名称 MySQL 二.目标版本 mysql-5.6.24-win32.1432006610.zip 三.环境信息 系统:windows 7 旗舰版 防火墙:关闭  —— 注意:如果防火墙不关闭 ...

  6. hive支持sql大全

    转自:http://www.aboutyun.com/thread-7316-1-1.html 一.关系运算:1. 等值比较: = 语法:A=B 操作类型:所有基本类型 描述: 如果表达式A与表达式B ...

  7. latex 常用小结

    在写论文,甚至有些课程的报告的时候,latex是常用的工具.这篇博文简单的记录了latex常用的一些内容. 1 基本模块 没用过latex的读者,最想问的问题莫过于latex的 “hello worl ...

  8. android 布局常用混淆属性

    1.如何控制某一控件在父控件中的相对位置呢? 在Android系统中提供了layout_margin,用来控制某一控件边缘相对于父控件的边距. 其中, android:layout_marginTop ...

  9. BootstrapTable+KnockoutJS

    BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查   前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用 ...

  10. SQL Server Mysql primary key可更新性分析

    SQL Server: 一般来说SQL Server 中表的主键是支持更新操作的.但是如果这个主键是由identity(1,1)这类的方式生成的话它是不可更新的. Mysql : Mysql 中表的主 ...