• 简明python教程四-----模块


    模块基本是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。

    #!/usr/bin/python
    #Filename:using_sys.py
    
    import sys
    
    print 'The command line arguments are:'
    for i in sys.argv:
        print i
    
    print '
    
    ThePYTHONPATH is',sys.path,'
    '

    利用import语句输入sys模块。sys模块包含了与Python解释器和它的环境有关的函数

    sys.argv变量是一个字符串的列表。特别sys.argv包含了命令行参数的列表。

    记住:脚本的名称总是sys.argv列表的第一个参数。

    字节编译的.pyc文件

    创建字节编译的文件,这些文件以.pyc作为扩展名。

    from...import语句

    使用from sys import argv语句,可以避免每次使用sys.  来输入argv变量到你的程序中。

    如果你想输入所有sys模块使用的名字,那么你可以使用from sys import*语句。

    模块的__name__

    每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。

    用例:

    #!/usr/bin/python
    #Filename:using_name.py
    
    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_sys
    I am being imported from another module

    每个python模块都有它的__name__,如果它是‘__main__’,这说明这个模块被用户单独运行,我们可以进行相应的恰当操作。

    使用python模块

    记住:这个模块应该被放在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一。

    例如:

    一个模块为:

    #!/usr/bin/python
    #Filename:mymodule.py

    def sayhi():
    print 'Hi,this is mymodule speaking.'

    version='0.1'

    把它和python程序放在同一个目录下

    #!/usr/bin/python
    #Filename:mymodule_demo.py
    
    import mymodule
    mymodule.sayhi()
    print 'Version',mymodule.version 

    输出结果为

    Hi,this is mymodule speaking.
    Version 0.1
    >>> 

    使用from...import

    #!/usr/bin/python
    #Filename:mymodule_demo2.py
    
    from mymodule import sayhi,version
    #Alternative:
    #from mymodule import *
    sayhi()
    print 'Version',version

    输出结果与上例一样

    dir()函数

    内建的dir()函数类列出模块定义的标识符。标识符有函数、类和变量

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

    >>> import sys
    >>> dir(sys)
    >>> dir()
    >>> a = 5
    >>> dir()
    >>> del a
    >>> dir()

    使用del语句删掉当前模块中的变量/属性,这个变化在dir的输出中反应出来

    关于del的注释:用来删除一个变量/名称。在这个例子中,del a,你将无法再使用变量啊---它好像从来没有存在过一样。

  • 相关阅读:
    类与对象
    最大子段和
    贪心-Wooden Sticks
    MFC改变坐标系
    Java集合不能存放基本数据类型
    关于lower_bound( )和upper_bound( )的常见用法
    数组乘法(大整数相乘)
    米勒罗宾素数测试法
    深度搜索--poj1321 棋盘问题
    memcpy复制整型数组相关
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/6376036.html
Copyright © 2020-2023  润新知