python头文件的编程风格

发布时间:2020-09-03 10:23:25

来源:亿速云

阅读:96

作者:小新

小编给大家分享一下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软件自带的库,不是从第三方安装的库。比如说,如果import sys了,会怎么打印。>>> import sys

>>> print sys

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

>>> print os

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

2、第三方库

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

>>> print web

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头文件的编程风格相关推荐

  1. python编程头文件_python头文件怎么写

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

  2. python以读写方式打开文件_python读写文件操作详细介绍【传智播客】

    Python文件的打开或创建可以使用函数open().该函数可以指定处理模式,设置打开的文件为只读.只写或可读写状态.open()的声明如下所示. open(file, mode='r', buffe ...

  3. python压缩文件夹下的所有文件_python压缩文件夹内所有文件为zip文件的方法

    这里讨论使用Python解压如下五种压缩文件: .gz .tar .tgz .zip .rar 简介gz: 即gzip,通常只能压缩一个文件.与tar结合起来就可以实现先打包,再压缩. tar: li ...

  4. python 读写utf8文件_Python关于 文件读写的总结

    # 文件的操作 # 打开文件 open # 默认的编码是gbk 这个是中文编码,最好的习惯呢就是我们再打开一个文件的时候 # 给它指定一个编码类型 # fobj=open('./Test.txt',' ...

  5. python def return 文件_python基础-文件处理与函数

    1. 文件处理 1.1 文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 1.2 文件读取模式r r文本模式的读,在文件不存在,不会创建新文件 f = ...

  6. python检测文件夹中新增文件_python检测文件夹变化,并拷贝有更新的文件到对应目录的方法...

    检测文件夹,拷贝有更新的文件到对应目录 2016.5.19 亲测可用,若有借鉴请修改下文件路径: 学习python小一个月后写的这个功能,属于初学,若有大神路过,求代码优化~ newcopy.py: ...

  7. python如何使用文件_Python的文件操作

    文件的操作,归根结底就只有两种:打开文件.操作文件 一.打开文件:文件句柄= open('文件路径','模式') python中打开文件有两种方式,即:open(...) 和  file(...),本 ...

  8. python素材和代码_python之文件和素材

    11.1 打开文件 open函数 open(name[,mode[,buffering]]) >>>f = open(r'C:\text\somefile.txt') 11.1.1 ...

  9. python基础文档_python基本文件操作

    python文件操作 python的文件操作相对于java复杂的IO流简单了好多,只要关心文件的读和写就行了 基本的文件操作 要注意的是,当不存在某路径的文件时,w,a模式会自动新建此文件夹,当读模式 ...

最新文章

  1. TCP和UDP传输特点
  2. matplotlib绘图大全
  3. MYSQL一主多从配置
  4. 【深度学习】Focal Loss 与 GHM——解决样本不平衡问题
  5. Linux中sysstat服务,Linux 性能优化工具包 sysstat 以及 sysstat 服务
  6. 文巾解题 01.05. 一次编辑
  7. java8 注解增强_Java8新增的重复注解功能示例
  8. linux增加 路由使两个不同的网段可以访问
  9. [翻译]VC++中创建并使用自定义控件
  10. 我写了一个开源项目AlphabetPy
  11. Mvc 4.0实现Response.Write()效果
  12. Hibernate Session和Jpa EntityManager
  13. Linux服务器双网卡双IP和单网卡双IP配置方法(Debian/Ubuntu)
  14. matlab符号运算与数值运算的转化
  15. OpenLayers动画效果显示路线
  16. 联通光猫由网关模式,改为桥接模式。
  17. 三相无刷直流电机的控制设计(一)基本硬件电路设计
  18. Tomcat源码解析:环境搭建
  19. cmd导入导出mysql中的数据库为sql文件
  20. Python入门基础篇 No.8 —— 时间的表示_unix时间点_毫秒_time模块

热门文章

  1. 计算机启动完成后操作系统负责管理的是,终极:如果计算机启动后无法进入系统,旧驱动程序会教您如何处理...
  2. 蓝桥杯基础模块8_2:串口进阶
  3. 个盘子的汉诺塔需要移动几步_看漫画学C++039:递归解汉诺塔
  4. video.js android,VideoJS + HTML5自动播放失败,适用于Android 2.3+和IOS 4+
  5. 英语口语练习系列-C37-服饰-询问年龄-沁园春-长沙
  6. CIFAR和SVHN在各CNN论文中的结果
  7. 乐观锁的两种实现方式
  8. .Net Core 简洁架构事件(这个不完整,待仔细补充)
  9. 使用递归算法结合数据库解析成java树形结构
  10. Spring的Lifecycle