知行编程网知行编程网  2022-09-20 04:00 知行编程网 隐藏边栏  58 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python 头文件怎么写的相关知识,包括python程序代码,以及python怎么写入文件这些编程知识,希望对大家有参考作用。

如何编写python头文件

本文主要以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')


import

1、系统库的应用

这里所说的系统库一般是指python软件自带的库,不是第三方安装的库。例如,如果你导入 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。这些库无一例外都以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、本地目录文件引用

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

import exer2

或者是

from exer2 import *

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

4、引用子目录文件

除了同级目录引用外,最常用的是子目录引用。例如,exer1.py 和子目录在同一个文件夹中。如果exer1.py要引用sub下的exer2.py,该怎么办呢?这时候要确保子目录下有__init__.py文件。

from sub import exer2

或者是,

from sub.exer2 import *

5、子目录引用父目录

有时,为了使用父目录或其他目录(类似于 util 目录)的某些功能,经常会反向引用子目录。这时候sys库就派上用场了。假设exer1.py和子目录在同一级,那么子目录下就有一个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下导入文件的顺序,我个人的经验是这样安排比较合理。

built-in 系统库

其他系统库

第三方库

子目录库

本地其他文件等等

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享