Python教程:模块

Python教程:模块


发布日期: 1970-01-01 更新日期: 2015-01-29 编辑:giser 浏览次数: 5337

标签:

摘要: 基本语法 你已经学习了如何在你的程序中定义一次函数而重用代码。如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。模块基本上 就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.p...

基本语法

你已经学习了如何在你的程序中定义一次函数而重用代码。如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。模块基本上 就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。

使用import语句

模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。首先,我们将学习如何使用标准库模块。以os模块为例,下面程序打印出给定目 录下满足特定条件(文件名中含'wx',后缀为'py')的文件的路径。

    #!/usr/bin/python
    # -- coding:utf-8 --
    import os
    def print_file_path(indir):
        for wroot, wdirs, wfiles in os.walk(indir):
            for wfile in wfiles:
                (file_name, file_ext) = os.path.splitext(wfile)
                if ('wx' in file_name ) and ( file_ext == '.py'):
                    filepath = os.path.join(wroot, wfile)
                    print(filepath)
    if name == 'main':
        inws = '/home/bk/progs'
        print_file_path(inws)

此例短小强悍,充分体现了Python语言简洁的特点。此处使用了os模块,os.walk()对文件夹进行遍历,返回元组,其中第一个为起始路径,第二个为起始路径 下的文件夹,第三个是起始路径下的文件。 os.path.splitext()的作用是分离文件名与扩展名。os.path.join()的作用是合成文件的路径。

from..import语句

这个常见的例子是数学函数。如下面程序,可以像内建函数一样直接使用math模块下面的sqrt(),pow()函数。

    from math import *
    def math_demo():
        x = 3
        y = 4
        z = sqrt(pow(x,2) + pow(y,2))
        print(z)
    if name == 'main':
        math_demo()

这样的优点是使得程序比较简洁,避免了使用math.sqrt()与math.pow()这样的形式。 但是,一般说来,应该避免使用from..import。 使 用import语句,可以使你的程序更加易读,也可以避免名称的冲突。即使是非常常用的math模块中的一些函数,在其他模块,如numpy中也进行了实现。这样,当 同时使用这两个类库时,就会出现冲突。

创建自己的模块

创建你自己的模块是十分简单的,你一直在这样做!每个Python程序也是一个模块。你已经确保它具有.py扩展名了。下面这个例子将会使它更加清晰。

上面是一个模块的例子。你已经看到,它与我们普通的Python程序相比并没有什么特别之处。我们接下来将看看如何在我们别的Python程序中使用这个模块。

记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一,文件名保存为mymodule.py。

通过使用自定义的模块,可以将程序放到不同的文件中进行组织,从而方便大型程序的编写与多人协作。

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org