首页 > 技术文章 > Python 模块

Simply-face 2015-10-23 14:40 原文

模块与import语句

  任何Python源文件都能以模块的形式使用。例如:如下代码

# spam.py

a = 37

def foo():
    print " I`m foo and is %s" %a
    
def bar():
    print "I`m bar and I`m calling foo"
    foo()
    
class Spam():
    def grok(self):
        print "I`m Spam.grok"

  要以模块的形式加载这段代码,可以使用import语句。首次使用import加载模块时,他将做3件事:

    1. 创建新的命名空间,用作在相应文件中定义的所有对象的容器。在模块中定义的函数和方法在使用global语句时将访问该命名空间

    2. 在新创建的命名空间中执行模块中包含的代码

    3. 在调用函数中创建名称来引用模块命名空间。这个名称与模块名称相匹配,按如下方法使用:

    import spam      #加载并执行模块

    x = spam.a        #访问模块spam的一个成员

    spam.foo()       #调用模块spam中的一个函数

    s = spam.Spam()     #创建spam.Spam()的一个实例

    s.grok()

  多个模块导入  

   可以为import提供逗号分隔模块名称列表,例如:

import re,socket,os

  

     引用模块的名称可以使用as限定符进行更改,例如:

import spam as sp
import socket as net

sp.foo()
sp.bar()

net.gethostname()

   模块是 python 中的第一类对象。也就是说他们可以分配给变量 ,放置在列表等数据结构中,以及以数据的形式在程序中传递。 例如:

if format == 'xml':
    import xmlreader as reader
elif format == 'cvs':
    import cvsreader as reader
data = reader.read_data(filename)

  

 

推荐阅读