zoukankan      html  css  js  c++  java
  • python入门第十八天_模块

    模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。

    import 语句

    想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:

    import module1[, module2[,... moduleN]

    当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。

    搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端:

    support.py 文件代码

    1 #!/usr/bin/python3
    2 # Filename: support.py
    3  
    4 def print_func( par ):
    5     print ("Hello : ", par)
    6     return

    test.py 引入 support 模块:

    test.py 文件代码

    1 #!/usr/bin/python3
    2 # Filename: test.py
    3  
    4 # 导入模块
    5 import support
    6  
    7 # 现在可以调用模块里包含的函数了
    8 support.print_func("Runoob")

    以上实例输出结果:

    $ python3 test.py 
    Hello :  Runoob

    一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

    当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?

    这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。

    这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。

    搜索路径是在Python编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在sys模块中的path变量,做一个简单的实验,在交互式解释器中,输入以下代码:

    >>> import sys
    >>> sys.path
    ['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
    >>> 

    sys.path 输出是一个列表,其中第一项是空串'',代表当前目录(若是从一个脚本中打印出来的话,可以更清楚地看出是哪个目录),亦即我们执行python解释器的目录(对于脚本的话就是运行的脚本所在的目录)。

    因此若像我一样在当前目录下存在与要引入模块同名的文件,就会把要引入的模块屏蔽掉。

    了解了搜索路径的概念,就可以在脚本中修改sys.path来引入一些不在搜索路径中的模块。

  • 相关阅读:
    [转]对Lucene PhraseQuery的slop的理解
    Best jQuery Plugins of 2010
    15 jQuery Plugins To Create A User Friendly Tooltip
    Lucene:基于Java的全文检索引擎简介
    9 Powerful jQuery File Upload Plugins
    Coding Best Practices Using DateTime in the .NET Framework
    Best Image Croppers ready to use for web developers
    28 jQuery Zoom Plugins Creating Stunning Image Effect
    VS2005 + VSS2005 实现团队开发、源代码管理、版本控制(转)
    禁止状态栏显示超链
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/9258725.html
Copyright © 2011-2022 走看看