学习python的第三十一天-模块,dir()函数

模块可以从其他程序输入,从而利用它的功能,python的标准库也是这个用法,这节学习如何使用标准库模块。

使用sys模块

import sys

print 'The command line arguments are:'
for i in sys.argv:
    print i

print '\n\nThe PYTHONPATH is', sys.path, '\n'

运行结果:

The command line arguments are:
using_sys.py
we
are
arguments
The  PYTHONPATH  is  ['/home/swaroop/byte/code',
'/usr/lib/python23.zip',
'/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2',
'/usr/lib/python2.3/lib-tk',  '/usr/lib/python2.3/lib-dynload',
'/usr/lib/python2.3/site-packages',
'/usr/lib/python2.3/site-packages/gtk-2.0']

Python执行 import sys 语句的时候,它在 sys.path 变量中所列目录中寻找 sys.py 模块。如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你 使用 。注意,初始化过程仅在我们 第一次 输入模块的时候进行。另外,“sys”是“system”的缩写。sys模块中的 argv 变量通过使用点号指明—— sys.argv ——这种方法的一个优势是这个名称不会与任何在你的程序中使用的 argv 变量冲突。另外,它也清晰地表明了这个名称是 sys 模块的一部分。

from...import语句

书中的内容精炼明确,我没什么可说的,为了以后看的时候理解起来完整又方便,就把书中的内容拷贝过来了。

如果你想要直接输入 argv 变量到你的程序中(避免在每次使用它时打 sys. ),那么你可以使用 from sys import argv 语句。如果你想要输入所有 sys 模块使用的名字,那么你可以使用 from sys import * 语句。这对于所有模块都适用。一般说来,应该避免使用 from..import 而使用 import 语句,因为这样可以使你的程序更加易读,也可以避免名称的冲突。

模块的__name__

这部分内容我可以理解,但是说不清楚是怎么回事,看代码可以看懂,但是让我清晰的说明整个过程还是有些困难。

每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。

if __name__ == '__main__':
    print 'This program is being run by itself'
else:
    print 'I am being imported from another module'

运行结果:

This program is being run by itself
>>> import using_name
I am being imported from another module

现在看到这段代码,我的理解是:让脚本自己运行就打印This program is being run by itself,如果是在某个脚本中调用这个“模块”,那么就打印I am being imported from another module。不知道这样理解对不对,希望在今后的学习中,可以真正理解这段代码的含义。

制造你自己的模块

还是那句老话,这本书不光讲的内容详细到位,而且这些代码真的很典型,读起来容易理解,方便使用。

# Filename: mymodule.py
def sayhi():
print 'Hi, this is mymodule speaking.'
version = '0.1'

然后在另一个脚本中使用上边自己写的模块。

import mymodule
mymodule.sayhi()
print 'Version', mymodule.version

运行结果:

Hi, this is mymodule speaking.
Version 0.1

我们也可以利用from...import调用自己写好的模块。

from mymodule import sayhi, version
# from mymodule import *
sayhi()
print 'Version', version

运行结果都是一样的。

dir()函数

你可以使用内建的 dir 函数来列出模块定义的标识符。标识符有函数、类和变量。

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

python的交互界面操作:

dir用法

os模块下使用dir()我们很清楚的看到它包含了一个巨大的属性列表。

发布了72 篇原创文章 · 获赞 42 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/A_lPha/article/details/53537719