python 头文件怎么写

news2025/1/16 11:16:55

本文主要以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
<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 系统库

其他系统库

第三方库

子目录库

本地其他文件等等

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

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

相关文章

Rabbit加密算法:性能与安全的完美结合

title: Rabbit加密算法&#xff1a;性能与安全的完美结合 date: 2024/4/19 19:51:30 updated: 2024/4/19 19:51:30 tags: Rabbit加密对称加密流密码密钥调度安全分析实际应用加密算法 第一章&#xff1a;引言 1. 加密算法的基本概念和应用 加密算法是一种通过对数据进行转换…

解决Keil V5.38 和 ST-Link V3 Debug不能运行问题

目录 概述 1 问题描述 1.1 情况一 1.2 情况二 1.3 情况三 2 解决方法 2.1 认识Keil Mico Lib 2.2 使能Keil Mico Lib 3 验证 3.1 进入C程序Main验证 3.2 断点验证 3.3 上电重启验证 4 结论 笔者使用的验证代码下载地址&#xff1a; stm32-freeRTOS-queue资源-CSD…

17.C++常用的算法_集合算法

文章目录 遍历算法1. set_intersection()代码工程运行结果 2. set_union()代码工程运行结果 3. set_difference()代码工程运行结果 遍历算法 1. set_intersection() 代码工程 /*1.求交集的两个集合必须是有序序列*/ /*2.目标容器开辟空间需要从两个容器中取较小值*/ /*3.set…

90年代女神返港行李失踪 怒斥国泰航空

现年51岁的童爱玲在1993年拍摄电影《火蝴蝶》入行&#xff0c;外形出众的她当年曾与梁朝伟、黎明等男神合作&#xff0c;因而被封为「男神磁石」。虽然童爱玲与台湾富商王敦民结婚诞下一子后&#xff0c;便淡出演艺圈&#xff0c;但她曾在2022年复出拍摄ViuTV剧集《季前赛》&am…

chatgpt免费使用网站

在人工智能的浪潮中&#xff0c;OpenAI的ChatGPT作为一款前沿的语言处理工具&#xff0c;已经引起了广泛的关注和讨论。 ChatGPT以其卓越的语言理解和生成能力&#xff0c;为用户提供了多样化的应用场景&#xff0c;从日常对话、编程辅助到内容创作等。然而&#xff0c;对于许…

PSO-BP和BP多输入多输出回归预测模型 matlab (多输入多输出)

文章目录 效果一览文章概述订阅专栏只能获取一份代码部分源码参考资料效果一览 文章概述 PSO-BP和BP多输入多输出回归预测模型 matlab (多输入多输出) 订阅专栏只能获取一份代码 部分源码 %------

小程序中使用HTTPS调用自带文本安全内容检测接口(msg_sec_check)的实现方法

在小程序中调用自带的文本安全内容检测接口&#xff0c;你需要使用小程序提供的wx.request方法。以下是一个示例代码&#xff1a; javascript代码: // 假设你已经获取了access_token,如果不知道如何获取&#xff0c;可以参考我上一篇文章 const access_token 你的access_tok…

FlinkCDC基础篇章2-数据源 SqlServerCDC写入到ES中

接着 上期FlinkCDC基础篇章1-安装使用 下载 Flink 和所需要的依赖包 # 下载 Flink 1.17.0 并将其解压至目录 flink-1.17.0 下载下面列出的依赖包&#xff0c;并将它们放到目录 flink-1.17.0/lib/ 下&#xff1a; 下载链接只对已发布的版本有效, SNAPSHOT 版本需要本地编译 …

云原生Kubernetes: K8S 1.29版本 部署Jenkins

目录 一、实验 1.环境 2.K8S 1.29版本 部署Jenkins 服务 3.jenkins安装Kubernetes插件 二、问题 1.创建pod失败 2.journalctl如何查看日志信息 2.容器内如何查询jenkins初始密码 3.jenkins离线安装中文包报错 4.jenkins插件报错 一、实验 1.环境 &#xff08;1&…

微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(一)

大家好&#xff0c;我是程序员大猩猩。 之前几篇文章&#xff0c;我们讲了Spring Cloud Gateway的轻量级实现&#xff0c;Nginx的配置概念与实现&#xff0c;如以下往期文章。 轻量级的Spring Cloud Gateway实践&#xff0c;实现api和websocket转发轻松实现Nginx的HTTP与WebS…

OpenHarmony实战开发-搜索功能实现案例、如何使用includes方法对数据实现模糊查询

介绍 本示例介绍使用includes方法对数据实现模糊查询 效果图预览 使用说明 点击首页搜索框跳转到搜索页面在搜索页面输入框中输入搜索的内容&#xff0c;下方列表自动根据搜索的内容进行筛选渲染点击筛选后的列表跳转到相应的页面跳转后会保存搜索历史&#xff0c;搜索历史使…

14-Error Handling (错误处理)

ESP32-S3错误处理&#xff1a;理解并掌握其重要性 在编程中&#xff0c;错误处理是一种重要的编程实践&#xff0c;它可以帮助我们的程序在遇到错误时能够优雅地恢复&#xff0c;而不是崩溃或产生不可预测的结果。在IDF中官方提供一些实用的错误处理技巧。&#x1f469;‍&…

java扩展jmeter依赖

前置条件 创建一个maven项目&#xff0c; 引入依赖 <dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_core</artifactId><version>3.2</version> </dependency> <dependency><groupId&g…

吴恩达2022机器学习专项课程(一) 6.1 动机第三周课后实验:Lab1使用逻辑回归进行分类

问题预览/关键词 回归和分类的区别&#xff1f;逻辑回归的作用是&#xff1f;什么是二分类问题&#xff1f;二分类问题案例如何表达二分类的结果&#xff1f;逻辑回归通常用哪种表达形式&#xff1f;什么是正样本和负样本&#xff1f;什么是阈值&#xff1f;可视化线性回归解决…

论婚恋相亲交友软件的市场前景和开发方案H5小程序APP源码

随着移动互联网的快速发展和社交需求的日益增长&#xff0c;婚恋相亲交友软件小程序成为了越来越多单身人士的选择。本文将从市场前景、使用人群、盈利模式以及竞品分析等多个角度&#xff0c;综合论述这一领域的现状与发展趋势。 一、市场前景 在快节奏的现代生活中&#xf…

ubuntu 22.04 编译 ORBSLAM3

源码地址&#xff08;带注释&#xff09;&#xff1a;ORBSLAM3 根据你安装的openCv版本修改cmake 修改2个文件的2个地方&#xff1a; ORB_SLAM3_detailed_comments-master/CMakeLists.txt ORB_SLAM3_detailed_comments-master/Thirdparty/DBoW2/CMakeLists.txt 查找openCv的地…

Python 爬虫如何配置代理 IP (Py 采集)

在Python中配置代理IP&#xff0c;可以通过设置requests库的proxies参数来实现。以下是一个示例&#xff1a; import requests# 则立可以获取稳定代理Ip&#xff1a;https://www.kuaidaili.com/?refrg3jlsko0ymg # 推荐使用私密动态 IP proxies {"http": "ht…

Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models论文解读

文章目录 前言一、摘要二、引言三、文献1、大语言模型文献2、视觉语言模型文献3、LLM作为生成助手文献 四、模型方法与结果1、Dual Vision Encoders3、Patch Info Mining4、Text and Image Generation1、Text-image Instructions2、Generation-related Instructions 五、实验结…

webAssembly学习及使用rust

学习理解 webAssembly 概念知识&#xff0c;使用 API 进行 web 前端开发。 概念 是一种运行在现代网络浏览器中的新型代码&#xff0c;并且提供新的性能特性和效果。它有一种紧凑的二进制格式&#xff0c;使其能够以接近原生性能的速度运行。C/C、 C#、Rust等语言可以编译为 …

手写Java设计模式之抽象工厂模式,附源码解读

接上篇&#xff0c;抽象工厂模式将汽车的一些属性可以抽象出来&#xff0c;可以理解为给不同汽车品牌生成时加上不同的特性&#xff0c;如颜色等&#xff0c;具体代码如下&#xff1a; 引入颜色接口&#xff1a; public interface Colour {void fill(); }将颜色与汽车生成品牌…