您的位置:首页 > 编程语言 > Python开发

A Byte of Python 笔记(6)模块

2016-03-30 17:53 645 查看
第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 语句——运行后被用来 删除 一个变量/名称。

概述:模块的用处在于它能为你在其他程序中重用提供服务和功能。附带的标准库就是这样一组模块。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: