python文件是怎么写_python头文件怎么写

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

5d12cd70ec06a840.jpg

编程风格#!/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头文件怎么写的详细内容,更多请关注php中文网其它相关文章!

article_wechat2021.jpg?1111

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】第二章——处理机调度的概念、层次、时机、切换过程 调度方式、调度算法的指标

文章目录一. 概念 & 层次1. 高级调度(作业调度)2. 中级调度(内存调度)挂起态 & 七状态模型3. 低级调度(进程调度)4. 三种调度的对比联系 && 总结二. 时机、切换过程 & 调度方式1. 进程…

formdata上传文件_关于multipart/formdata上传文件

最近在做一个文件上传的开放接口,用到Content-Type: multipart/form-data这种请求类型,特地做了一些研究和记录。在最初的 http协议中,并没有上传文件方面的功能。RFC1867为 http协议添加了这个能力。常见的浏览器,如 Microsoft I…

【学习笔记】第二章——调度算法:先来先服务FCFS、短作业优先SJF、高响应比HRRN

文章目录一. 先来先服务(FCFS)二. 短作业优先(SJF)三. 高响应比优先1. 对前面两种算法的思考2. 描述四. 一、二、三总结例子都要手动写一遍哦~这三个是供早期的批处理系统使用的算法 一. 先来先服务(FCFS&a…

【学习笔记】第二章——时间片轮转RR、优先级调度、多级反馈队列调度算法

文章目录一. 时间片轮转二. 优先级调度三. 多级反馈队列调度算法四. 总结一. 时间片轮转 公平,轮流给进程提供时间片只用于进程调度(只有进程才能被分配时间片)抢占式,由时钟装置发出时钟中断来通知**缺点:**高频的进…

laravel 分词搜索匹配度_elasticsearch基础笔记9-elasticsearch 词项全文搜索

es的核心功能就是搜索和分析。那么我们看看搜索相关内容1、搜索机制在进入搜索之前,会对查询体根据情况进行分析和处理。2、有哪些常用搜索类型全文查询 词项查询 复合查询 嵌套查询 位置查询 特殊查询等。我们常用到的就是前三种,学起来简单&#xff0c…

【学习笔记】第二章——进程同步、进程互斥、进程互斥的硬件/软件实现方法

文章目录一. 进程同步 && 进程互斥四个区域四个原则总结:二. 进程互斥的软件实现方法1)单标志法2)双标志先检查法3)双标志后检查法4)Peterson 算法总结三. 进程互斥的硬件实现方法1)中断屏蔽方法2&…

python的数据结构包括那些_python算法与数据结构-什么是数据结构

一、什么是数据结构 数据结构,直白地理解,就是研究数据的存储方式。 我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的值,因此&…

seo自动发外链_一套节约成本全网营销方案-小小课堂SEO培训教程

很多公司都是由一些小型工作室或个人工作室慢慢发展而来的,在这过程中,人员、资金链、资源、项目等因素一旦出现问题,可能会导致项目失败,那么在互联网上投入的资金如果过多,可能都是白白打了水漂。今天,小…

python 支付宝个人账单_金融支付财务融合业务-实践分享1:订单、账单、交易流水、账套知识解构、原理解析...

本文作者从实际工作实践出发,结合案例等分享了电商金融支付财务融合中的基本概念和相关原理解析,包括:订单、账单、交易流水和账知识解构,供大家一同参考和学习。从事电商、进销存、金融、支付、财务的产品同学,是否对…

【学习笔记】第二章——信号量机制 用信号量实现互斥、同步

文章目录一. 信号量机制整型信号量记录型信号量例子:总结二. 用信号量实现互斥、同步互斥同步前驱总结一. 信号量机制 信号量:一个用于表示系统中某种资源的数量的变量(整数 or 记录型变量)一对原语:wait(S) 和 signa…

opengl 安装_一步步学OpenGL(34) -《GLFX,一个OpenGL效果库》

教程 34GLFX,一个OpenGL效果库原文: http://ogldev.atspace.co.uk/www/tutorial34/tutorial34.htmlCSDN完整版专栏: https://blog.csdn.net/cordova/article/category/9266966理论介绍这篇教程暂时先不继续探索OpenGL的特性和3D技术了,来介绍…

【LeetCode笔记】剑指 Offer 60. n个骰子的点数(Java、动态规划)

文章目录题目描述代码 & 思路1. 二维数组(方便理解)2. 一维数组(节约空间)二刷鸽了好久的打题博客~要继续补起来了! 今天不打题,明天变垃圾 QAQ 题目描述 一眼就想先暴力枚举、或者递归呀&…

java 根据圆心计算圆弧上点的经纬度_【控制测量学】-高斯投影正算公式以及java代码

正算公式(将经纬度转化为坐标):java代码(附有源代码和修改后的代码):源代码:/** * 由经纬度反算成高斯投影坐标 * * param longitude * param latitude * return */ public static double[] GaussToBLToGauss( double longitude, double latitude) { …

【LeetCode笔记】剑指 Offer 59 - II. 队列的最大值(Java、辅助队列)

文章目录题目描述思路 && 代码二刷题目描述 恢复打题的第二天打卡~ 可以说是这道最小栈的兄弟题目了,很相似总体思路还是一样,靠空间换时间~也就是借助辅助队列 思路 && 代码 这篇题解的动图做得很好&#xff…

redis setnx原子性_不支持原子性的 Redis 事务也叫事务吗?

文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱 假设现在有这样一个业务,用户获取的某些数据来自第三方接口信息,为避免频繁请求第三方接口,我们往往会加一层缓存,缓存肯定要有时效性,假设我们…

【LeetCode笔记】剑指 Offer 67. 把字符串转换成整数 (Java、字符串)

文章目录题目描述思路 && 代码二刷题目描述 老阅读题了,感觉这道题有点类似写业务接口。 思路 && 代码 首先,把情况划分一下: 非正常值,直接给 0(这个实际上可以划分到2的代码中)可取…

详细描述三个适于瀑布模型的项目_信息系统项目管理师-第二三章:信息系统项目管理基础与立项管理2...

三、信息系统项目的生命周期1、项目生命周期的定义—项目从启动、组织与准备、执行到结束所经历的一系列阶段2、★项目生命周期的特征①成本与人力投入在开始时较低,在工作执行期间达到最高,并在项目快要结束时迅速回落②风险与不确定性在项目开始时最大,并在项目的整个生命周期…

【LeetCode笔记】剑指 Offer 64. 求1 + 2 + ... + n (Java、限制语法、二刷)

文章目录题目描述思路 && 代码注释版代码(方便理解):无注释版代码(方便背诵 )二刷题目描述 鬼鬼,又到了我最喜欢的戴着脚镣跳舞环节。 讲道理,我觉得这类题应该整个归纳啥的。。&#x…

虚拟dom_从0到1实现一个虚拟DOM

来源 | https://segmentfault.com/a/1190000021331850要构建自己的虚拟 DOM,需要知道两件事。你甚至不需要深入 React 的源代码或者深入任何其他虚拟 DOM 实现的源代码,因为它们是如此庞大和复杂——但实际上,虚拟 DOM 的主要部分只需不到 50…

【LeetCode笔记】剑指 Offer 31. 栈的压入、弹出序列 (Java、栈)

文章目录题目描述代码 && 思路二刷题目描述 打卡第三天!加油加油~ 数据结构笔试题貌似也会考 ,不过考法不一样,有点规律。总的来说还是挺有意思的,我们直接来看代码吧~ 代码 && 思路 O(…