<dl id="vorq8"><menu id="vorq8"></menu></dl>

<sup id="vorq8"></sup>
<sup id="vorq8"></sup>
<sup id="vorq8"></sup>

<optgroup id="vorq8"><address id="vorq8"></address></optgroup>

    <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

    <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

    当前位置:  首页  >  PHP教程  >  PHP 应用  >  CMS建站

    Python中关于使用模块的基础知识

    这篇文章主要介绍了Python中关于使用模块的基础知识,是Python入门的基础,需要的朋友可以参考下
    一个模块可以在逻辑上组织Python代码。将相关的代码到一个模块中,使代码更容易理解和使用。模块是可以绑定和借鉴任意命名属性的Python对象。

    简单地说,一个模块是由Python代码的文件。一个模块可以定义函数,类和变量。模块还可以包括可运行的代码。
    例子:

    Python代码的模块名为aname通常位于一个名为aname.py。下面是一个简单的模块,support.py作为例子

    def print_func( par ):
      print "Hello : ", par
      return
    
    

    import语句:

    可以通过在其他一些Python源文件执行import语句来使用任何Python源文件作为一个模块。import的语法如下:

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

    当解释器遇到import语句,它导入(import)模块如果模块出现在搜索路径。搜索路径是一个目录列表,该解释器导入模块之前搜索。例如,导入模块hello.py,需要把下面的命令在脚本的顶部:

    #!/usr/bin/python
    
    # Import module support
    import support
    
    # Now you can call defined function that module as follows
    support.print_func("Zara")
    
    

    当执行上面的代码,产生以下结果:

    Hello : Zara
    
    

    一个模块被加载一次,?#36824;?#23548;入的次数。这可防止模块执行发生多次导入。
    from...import 语句

    Python的from语句可以从一个模块中导入特定的属性到当前的命名空间。from...import 语法如下:

    from modname import name1[, name2[, ... nameN]]
    
    

    例如,从模块fib导入函数fibonacci,使用下面的语句:

    from fib import fibonacci
    
    

    此语句不导入整个模块fib到当前的命名空间;它只是介绍了fibonacci从模块fib导入模块的全局符号表?#23567;?br /> from...import * 语句:

    它也可以通过使用下面的import语句导入从模块到当前的命名空间的所有名称:

    from modname import *
    
    

    这提供了导入从模块到当前的命名空间中的所有项目一个简单的方法;?#36824;?#36825;个语句应谨慎使用。
    定位模块:

    当导入一个模块,在下?#34892;?#21015;模块由Python解释器搜索:

    • 当前目录
    • 如果未找到该模块,然后Python搜索在shell变量PYTHONPATH每个目录
    • 如果这些方法都失败,Python会检查默?#19979;?#24452;。在UNIX上,默?#19979;?#24452;是正常是/usr/local/lib/python/

    模块搜索路径被存储在系统模块sys作为所述的sys.path变量。在sys.path的变量包含当前目录,PYTHONPATH和相关的默认安装。
    PYTHONPATH变量:

    在PYTHONPATH是一个环境变量,包括目录列表中。 PYTHONPATH的语法shell变量PATH相同。

    下面是Windows系统的典型PYTHONPATH:

    set PYTHONPATH=c:\python20\lib;
    
    

    这里是UNIX系统的典型PYTHONPATH:

    set PYTHONPATH=/usr/local/lib/python
    
    

    命名空间和作用域:

    变量名称(标识)映射到对象。名称空间是变量名(键)及其相应的对象(的值)的字典。

    Python语句可以在本地命名空间和全?#32622;?#21517;空间访问变量。如果局部和全局变?#23458;?#21517;,局部变量屏蔽全局变量。

    每个函数都有自己的命名空间。类方法遵循相同的作用域规则为普通函数。

    Python?#21592;?#37327;是否为局部或全局进行假定猜测。它假定任何变量赋值函数中的值是局部的。

    因此为了使一个函数内的值赋给一个全局变量,必须先使用global语句。

    声明 global VarName 告诉Python VarName是一个全局变量。Python 停止寻找该变量的局部命名空间。

    例如,我们在全?#32622;?#21517;空间中定义的变量Money 。在该函数的Money ,我们给定Money 的值,因此Python 假定Money 为局部变量。但是,我们设定它,所以一个UnboundLocalError是结果之前访问的局部变量Money 的值。取消global语句解决了这个问题。

    #!/usr/bin/python
    
    Money = 2000
    def AddMoney():
      # Uncomment the following line to fix the code:
      # global Money
      Money = Money + 1
    
    print Money
    AddMoney()
    print Money
    
    

    dir( ) 函数:

    使用dir()内置函数返回一个包含一个模块中定义名称的字符串的排序列表。

    该列表包含在一个模块中定义的所有模块,变量和函数的名称。下面是一个简单的例子:

    #!/usr/bin/python
    
    # Import built-in module math
    import math
    
    content = dir(math)
    
    print content;
    
    当执行上面的代码,产生以下结果:
    
    ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 
    'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 
    'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
    'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 
    'sqrt', 'tan', 'tanh']
    
    

    在这里,特殊字符串变量__name__是模块的名称,__file__是从中加载的模块的文件名。
    globals()和 locals()函数:

    globals() 和 locals() 函数可用于返回在根据在它们被称为位置的全局和局部名称空间的名称。

    如果locals()被一个函数中调用时,它会返回所有可以在局?#30475;?#20989;数访问的名称。

    如果globals()从一个函数中调用时,它会返回所有可以从全局函数进行访问的名称。

    这两个函数的返回类型是字典。因此,名称可以使用keys()函数提取出?#30784;?br /> reload()函数:

    当该模块被导入到一个脚本,在一个模块的顶层部分的代码只执行一次。

    因此,如果你想重新执行的顶级代码模块中,可以使用reload()函数。reload()函数导入先前导入的模块了。reload()函数的语法是这样?#27169;?/p>

    reload(module_name)
    
    

    在这里,module_name是要重装,不包含模块名字符串的模块的名称。例如,要重新加载hello模块,请执行以下操作:

    reload(hello)
    
    

    Python中的包:

    包是用于定义由模块和子包和子子包等的单一的Python应用环境的分层文件目录结构。

    考虑一个文件Pots.py在Phone目录中可用。此文件的源代码如下一行:

    #!/usr/bin/python
    
    def Pots():
      print "I'm Pots Phone"
    
    

    类似的方法,我们具有不同功能的另两个文件具有相同的名称如上:

    • Phone/Isdn.py文件有函数 Isdn()
    • Phone/G3.py 文件有函数 G3()

    现在,创建在Phone目录中多了一个文件__init__.py:

     Phone/__init__.py
    

    为了让所有的功能可用,当导入Phone,需要把__init__.py明确的import语句如下:

    from Pots import Pots
    from Isdn import Isdn
    from G3 import G3
    
    

    当添加完这些行到__init__.py,那么已经导入了Phone包所有这些类的使用。

    #!/usr/bin/python
    
    # Now import your Phone Package.
    import Phone
    
    Phone.Pots()
    Phone.Isdn()
    Phone.G3()
    
    

    当执行上面的代码,产生以下结果:

    I'm Pots Phone
    I'm 3G Phone
    I'm ISDN Phone
    
    

    在上面的例子我们采取示例每个文件单个函数,但可以保留文件中多个函数。还可以在这些文件定义不同的Python类,可以在包外创建那些类。

    吐了个 "CAO" !
    扫码关注 PHP1 官方微信号
    PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
    Copyright ? 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有
         
    pc蛋蛋
    <dl id="vorq8"><menu id="vorq8"></menu></dl>

    <sup id="vorq8"></sup>
    <sup id="vorq8"></sup>
    <sup id="vorq8"></sup>

    <optgroup id="vorq8"><address id="vorq8"></address></optgroup>

      <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

      <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

      <dl id="vorq8"><menu id="vorq8"></menu></dl>

      <sup id="vorq8"></sup>
      <sup id="vorq8"></sup>
      <sup id="vorq8"></sup>

      <optgroup id="vorq8"><address id="vorq8"></address></optgroup>

        <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

        <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

        体彩20选5号码走势 3d四码组三复式 广西快三今天的走势图 曾道人黄金资料 qq游戏刮刮乐聊天室 大乐透走势图机选号 香港赛马会级版 浙江五亿大奖 福建11选5基本走势 福利彩票35选7第四期 澳洲幸运8是真的吗 梭哈单机牌 南国特区七星彩票论坛 腾讯欢乐升级 陕西快乐十分奖金