• 技术文章 >Python技术 >Python基础教程

    python 头文件怎么写

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-09-21 17:44:22原创7497

    本文主要以python2为例。首先介绍一下Python头文件的编程风格,然后再给大家详细介绍import部分的基本用法。这两个部分就是Python中头文件的组成模块。

    编程风格

    #!/usr/bin/env python     #在文件头部 ( 第一行 ) 加上   设置 Python 解释器  
    # -*- coding: utf-8 -*-  #在文件头部 ( 第二行 ) 加上   在编辑器中设置以 UTF-8 默认编码保存文件  
    # Copyright (c) ***   #版权信息放在文件头部,文件编码之后    
    # docstring 是Python特有的注释风格,它是模块、类或函数的第一个语句,可以通过__doc__方法访问   
    # 用英语撰写注释,短注释可以忽略末尾的句号 (.)  
    # docstring 为每个模块、类或函数撰写 
    docstring 推荐使用三个双引号(”””) 来定义
    docsting , 不推荐使用三个单引号 (''')  # 模块的 docsting 放在文件头部,版权信息之后    
    ”””This is a one line docstring.”””  
    ”””The title of a multiline docstring:  After title is the content.You can write it as long 
    as needed.  ”””    # 把 import 语句放在文件头部,在模块 docstring 之后,在模块全局变量或全局常量之前  
    # 按照从一般到特殊的原则分组 
    import 语句,先 import 标准库,然后 import 第三方库,最后 import 程序中的自定义库  
    # 在不同分组的 import 语句之间加空行   # 每个 import 语句只导入一个模块    
    import sys   
    import time    
    from PyQt.QtCore import SIGNAL, QTimer    #  在终端中使用中文字符  在文件头部加上
    # import sys   
    # reload(sys)   
    # sys.setdefaultencoding('utf-8')

    相关推荐:《Python教程

    import

    1、系统库的应用

    这里说的系统库,一般是指python软件自带的库,不是从第三方安装的库。比如说,如果import sys了,会怎么打印。

    >>> import sys
    >>> print sys
    <module 'sys' (built-in)>

    这说明sys库很有可能就是嵌入在python里面的,根本没有办法删除。那是不是所有的库都是这样呢,我们可以找os试一试:

    >>> import os
    >>> print os
    <module 'os' from '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'>

    很明显,这里的os库是由pyc提供的,所以从优先级来说,似乎sys还要更重要一些。

    2、第三方库

    所谓第三方库,就是通过python setup.py install安装、pip安装或者通过apt-get install安装的库。这类库很多,我自己常用的就有webpy、twisted、cv2、sklearn、wxpython,这些lib无一例外,都是以pyc的形式存在的。比如说,我们看一下webpy:

    >>> import web
    >>> print web
    <module 'web' from '/usr/local/lib/python2.7/site-packages/web.py-0.40.dev0-py2.7.egg/web/__init__.pyc'>

    3、本地目录文件引用

    如果是本地文件引用,其实方法也很简单,直接import一下就可以了。如果import成功,python就会生成对应文件的pyc文件。比如说,exer1.py想引用一下exer2.py中的函数,那么它可以这么做:

    import exer2

    或者是

    from exer2 import *

    其次,要注意的是,这种方法不光适用于python,也适用于动态库文件。我们知道,有的时候为了扩展python功能,需要写c文件生成动态库供python使用。有兴趣的同学可以参考这个链接。这个时候,如果需要引用动态库文件,直接import文件名就可以了。

    4、引用子目录文件

    除了同级目录引用之外,另外用的比较多的就是子目录引用。比如说,exer1.py和sub目录在一个文件夹下面,如果exer1.py想引用sub下面的exer2.py,那么它应该怎么做呢?这个时候,一定要保证sub目录下有__init__.py文件。

    from sub import exer2

    或者是,

    from sub.exer2 import *

    5、子目录引用父目录

    有的时候,子目录为了使用父目录或者其他目录(类似util目录)的一些功能,常常要反向引用。这个时候,sys库就派上了用场。假设exer1.py和sub目录在同一级,sub目录下有一个exer2.py文件,这个时候exer2.py想引用exer1.py的功能,那么它可以这么操作:

    import sys
    sys.path.append('../')
    import exer1

    或者是,

    import sys
    sys.path.append('../')
    from exer1 import *

    6、交叉引用

    如果有两个文件交叉引用,这个时候我建议可以保留一个文件的引用,另外一个文件的引用可以放到函数下面来做,比如说像这样:

    def process():
        import exer1
        exer1.add()

    7、import文件的顺序建议

    关于python下import文件的顺序,我个人的经验是这样安排比较合理一些,

    built-in 系统库

    其他系统库

    第三方库

    子目录库

    本地其他文件等等

    专题推荐:python 头文件
    上一篇:python 重载内置函数吗 下一篇:python怎么调用sikuli

    相关文章推荐

    • python中怎么导入模块• python怎么输出小数• Python怎么算平方

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网