建设项目一次公示网站/百度竞价推广方案范文
一、Python中组织形式
(一)组织形式(函数,类,模块,包,库)概览
(1)概览
组织形式 | 描述 | 特点或用途 | 例子 |
---|---|---|---|
函数 | 一段具有特定功能的代码块,可以接受参数并返回结果。 | - 封装性 - 可重用性 - 易于测试 | def add(a, b): return a + b |
类 | 定义了一组具有相同属性和方法的对象的模板。 | - 封装性 - 继承性 - 多态性 | class Car: def __init__(self, model): self.model = model |
模块 | 包含Python代码的文件,可以定义函数、类和变量。 | - 组织代码 - 重用性 -命名空间隔离 | math.py 包含数学运算相关的函数 |
包 | 包含多个模块的集合,通常用于组织大型项目。 | - 组织大型项目 - 命名空间管理 - 可分发性 | numpy 包,包含多个科学计算相关的模块 |
库 | 一组可重用的模块或包,为特定领域提供功能。 | - 功能性 - 可扩展性 - 通常作为第三方库使用 | Pillow 图像处理库,提供图像操作功能 |
这些组织形式在Python中是相互关联的,它们共同构成了Python编程的基础架构。函数和类是代码的基本构建块,模块是将这些构建块组织成文件的方式,包是将多个模块组织成更大的单元,而库则是提供特定功能的代码集合。
这些例子展示了不同组织形式在实际Python编程中的应用。例如,add
函数是一个简单的函数,用于执行加法操作;Car
类是一个简单的类定义,可以用于创建汽车对象;math.py
是Python标准库中的一个模块,提供了一系列数学函数;numpy
是一个广泛使用的科学计算包,包含了大量的模块;Pillow
是一个第三方图像处理库,提供了丰富的图像操作功能。
(2)Python中不同组织形式的安装、导入和使用方法
组织形式 | 安装方法(如果适用) | 导入方法 | 使用方法 |
---|---|---|---|
函数 | 不适用 | 在模块中定义后直接使用或通过from module import function | 调用函数:function(arguments) |
类 | 不适用 | 在模块中定义后直接使用或通过from module import Class | 创建实例:instance = Class(arguments) |
模块 | 使用pip install module_name 或下载源码后使用python setup.py install | 使用import module_name 或from module_name import function_or_class | 调用模块中的函数或类:module_name.function(arguments) 或function_or_class.arguments |
包 | 通常作为模块的一部分,安装方法同模块 | 使用import package_name 或from package_name import module_or_class | 使用包中的模块或类:package_name.module_name.function(arguments) 或module_or_class.arguments |
库 | 使用pip install library_name 或下载源码后使用python setup.py install | 使用import library_name 或from library_name import module_or_class | 使用库中的模块或类:library_name.module_or_class.arguments |
说明:
- 安装:对于模块和包,如果它们是第三方的,通常可以通过
pip
(Python的包安装器)来安装。库通常指一组相关的模块或包,其安装方法也通过pip
或源码安装。 - 导入:导入是使用模块、包或库中的代码的第一步。可以使用
import
语句来导入整个模块或包,或者使用from ... import ...
来从模块或包中导入特定的函数、类等。 - 使用:使用指的是调用模块中的函数或创建类的实例。模块中的函数可以直接调用,而类的实例需要先创建。
以下是对Python中组织形式的层次化和更丰富的描述,以及它们之间的关系和用途:
(二) 函数(Function)
1) 定义:
一段具有特定功能的代码块,可以接收输入(参数),执行操作,并返回输出(结果)。
2)特点:
- 封装性:将代码逻辑封装在函数内部,避免重复。
- 可重用性:可以在不同的上下文中重复调用。
- 易于测试:可以独立于其他代码进行测试。
3)构造函数:
在Python中,构造函数是`__init__`方法,用于初始化新创建的对象的状态。
4)例子:
`def greet(name): print("Hello, " + name)`
(三)类(Class)
1) 定义:
含有函数的代码块,用于描述具有相同属性和方法的对象集合。
2) 特点:
- 封装性:将数据和操作这些数据的方法组合在一起。
- 继承性:可以创建基于现有类的子类,扩展或修改行为。
- 多态性:允许使用统一的接口来使用不同类型的对象。
3) 构造函数:
`__init__`方法,用于在创建对象时初始化其属性。
4)例子:
`class Animal: def __init__(self, name): self.name = name`
(四)模块(Module)
1) 定义:
物理形式表现为一个`.py`文件,是Python中的基本代码组织单元。
2) 特点:
- 组织代码:将相关的函数和类组织在一起。
- 重用性:模块可以被其他脚本导入和使用。
- 命名空间隔离:避免命名冲突。
3) 用途:
模块化设计使得代码更加清晰、易于维护。
4)例子:
`math.py`模块提供了数学运算相关的函数。
(五) 包(Package)
1) 定义:
物理形式表现为包含多个`.py`文件的目录,且必须包含一个`__init__.py`文件。
2)特点:
- 组织大型项目:通过包来组织大型项目中的多个模块。
- 命名空间管理:通过包的结构来管理命名空间。
- 可分发性:包可以被安装和分发。
3) 用途:
包是Python项目中用于组织多个相关模块的标准方式。
4)例子:
`numpy`是一个提供多维数组和矩阵运算的科学计算包。
(六) 库(Library)
1)定义:
一组解决特定问题的模块或包的集合,通常作为第三方库使用。
2)特点:
- 功能性:提供特定领域的功能和工具。
- 可扩展性:可以根据需要添加更多的模块或功能。
- 通常作为第三方库使用:可以被不同的项目导入和使用。
3)用途:
库是Python生态系统中的重要组成部分,提供了广泛的功能支持。
4) 例子:
`Pillow`是一个图像处理库,提供了图像文件的读取、处理和写入功能。
这些组织形式在Python中形成了一个层次化的结构,从单个函数到整个库,它们共同支持了代码的组织、重用和扩展。通过这种层次化的方式,开发者可以更有效地构建和管理复杂的软件项目。
二、Python 代码的编码规范
通用PEP8 规范链接: 官方链接、中文翻译
可参照链接:python3代码编程规范(命名、空格、注释、代码布局、编程建议等)-CSDN博客
(一)命名规范
- 包名和模块名:简短全小写,可选下划线分隔。
- 类名:首字母大写的驼峰式(CapWords),如
CheckFunc
。 - 函数名:小写单词,下划线分隔,如
check_func
。 - 变量名:贴近意义,避免使用
i
,j
,k
,l
,O
,I
。 - 常量:全部大写,下划线分隔,注释说明,如
TOTAL = 10
。 - 异常名:类命名方式,如
ErrorInvalidArgument
。
(二)表达式和语句中的空格
- 二元运算符:两边使用空格,如
i = i + 1
。 - 关键字参数或默认参数值:等号两边使用空格,如
def complex(real, imag=0.0)
。
(三)注释
- 文档字符串:使用三引号,提供函数或方法的描述和用法。
- 函数或方法注释:说明函数或方法的作用、参数和返回值。
- 其他建议:添加文件描述、作者、时间和文件名等信息。
(四)代码布局
- 缩进:使用4个空格进行缩进。
- 行的最大长度:限制为79个字符。
- 空行:
- 类与类之间前后用两个空行隔开。
- 类中函数与函数之间前后用一个空行隔开。
- 函数中使用空行区分逻辑段。
- 导入:
- 按标准库、第三方库、本地库分组。
- 每组之间用空行分隔。
- 避免在同一行导入多个模块。
(五)Python编程建议
- 异常处理:
- 使用
try...except...else
结构,如try...except KeyError...else...
。
- 使用
- 返回结果处理:保持返回结果的一致性。
- True、False的判断:直接使用布尔值,避免使用
== True
或is True
进行比较。
相关文章:

问题解决|Python 代码的组织形式与编码规范
一、Python中组织形式 (一)组织形式(函数,类,模块,包,库)概览 (1)概览 组织形式描述特点或用途例子函数一段具有特定功能的代码块,可以接受参数…...

Flask项目搭建及部署 —— Python
flask搭建及部署 pip 19.2.3 python 3.7.5 Flask 1.1.1 Flask-SQLAlchemy 2.4.1 Pika 1.1.0 Redis 3.3.11 flask-wtf 0.14.2 1、创建flask项目: 创建完成后整个项目结构树: app.py: 项⽬管理⽂件,通过它管理项⽬。 static: 存放静态…...

【C++报错已解决】Invalid Use of ‘this’ Pointer
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言 一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:修正‘this’指针使用2…...

群晖NAS配置WebDav服务结合内网穿透实现跨平台云同步思源笔记
文章目录 前言1. 开启群晖WebDav 服务2. 本地局域网IP同步测试3. 群晖安装Cpolar4. 配置远程同步地址5. 笔记远程同步测试6. 固定公网地址7. 配置固定远程同步地址 前言 本教程主要分享如何将思源笔记、cpolar内网穿透和群晖WebDav三者相结合,实现思源笔记的云同步…...

内容监管与自由表达:Facebook的平衡之道
在当今数字化信息社会中,社交媒体平台不仅是人们交流和获取信息的主要渠道,也是自由表达的重要舞台。Facebook,作为全球最大的社交网络平台,连接了数十亿用户,形成了一个丰富多样的信息生态。然而,如何在维…...

电脑桌面日历记事本怎么弄 好用的桌面日历记事本
在这个数字化的时代,电脑已成为我们日常生活中不可或缺的伙伴。我常常在电脑上记录各种事项,以便随时查看和提醒自己。而我最钟爱的记事方式,莫过于使用桌面日历记事本。 想象一下,你的电脑桌面上有一个直观的日历,每…...

#招聘数据分析#2024年6月前程无忧招聘北上广深成渝对比情况
#招聘数据分析#2024年6月前程无忧招聘北上广深成渝对比情况 0、根据前程无忧不完全样本统计,北上广深成都重庆平均月工资从高到低依次为 北京15441元、上海14425元、深圳13310元、广州11192元、成都10539元、重庆10290。 1、成都招聘样本数全量35228个,…...

STM32 IIC详解(软件模拟)
目录 一、IIC协议基本原理 1.IIC协议概述 2.时序图分析 二、代码分析 1.IIC初始化 2.IIC起始信号 3.IIC发送数据 4.获取应答信号 5.读一个字节 6.产生ACK应答 7.不产生ACK应答 IIC(Inter-Integrated Circuit)在嵌入式系统中是一种常见的数据通…...

推三返一小程序商城开发搭建
推三返一小程序商城开发主要涉及到以下几个步骤: 确定需求和功能: 首先需要明确小程序商城的开发需求和功能。商家需要思考自己想要实现什么功能,例如推广、销售、裂变等。 同时还需要考虑小程序的页面设计、用户体验等方面。 选择合适的开…...

项目机会:4万平:智能仓,AGV,穿梭车,AMR,WMS,提升机,机器人……
导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 如下为近期国内智能仓储物流相关项目的公开信息线索,这些项目具体信息会发布到知识星球,请感兴趣的球友先人一步到知识星球【智能仓储物流技术研习社】自行下载…...

[工具类]Java 合并、拆分PPT幻灯片
本文将介绍在Java程序中如何来合并及拆分PPT文档的方法。示例大纲: 1. 合并 1.1 将指定幻灯片合并到文档 1.2 合并多个幻灯片文档为一个文档 2. 拆分 2.1 按幻灯片每一页单独拆分为一个文档 2.2 按指定幻灯片页数范围来拆分为多个文档 使用工具:F…...

深入了解 Timber:全面掌握 Android 日志记录的最佳实践
深入了解 Timber:全面掌握 Android 日志记录的最佳实践 Timber 是由 Jake Wharton 提供的一个流行的 Android 日志记录库。它旨在简化日志记录、增强日志管理,并提高代码的可维护性。在本文中,我们将深入探讨 Timber 的功能、使用方法以及最…...

阿一课代表随堂分享:红队反向代理之使用frp搭建反向代理
frp反向代理 frp简介 frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。 frp 是一个可用于内网穿透的高性能的反向代理应用,分为服务端frps和客户端frpc,支持 tcp, udp, http, https 协议。详…...

基于vue的引入登录界面
以下是一些常见的登录页面布局: 1. 中心布局 - 登录表单位于页面的中心位置,通常包括用户名输入框、密码输入框、登录按钮等元素。页面背景简洁,以突出登录表单。 - 这种布局常见于大多数网站和应用,简洁明了,用户注意…...

centos7升级到欧拉openeule
centos7升级到欧拉openeule 一、准备工作 1、安装迁移工具(安装迁移工具的机器不能给自己升级,请用其他机器作为迁移母机) wget https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS-SP1/contrib/x2openEuler/x86_64/Packages/x2…...

阿里云 Ubuntu 开启允许 ssh 密码方式登录
以前用的 centos,重置系统为 ubuntu 后在ssh 远程连接时遇到了点问题: 在阿里云控制台重置实例密码后无法使用密码进行 SSH 连接登录 原因:阿里云 Ubuntu 默认禁用密码登录方式 解决办法: 先使用其他用户登录到服务器 这里进来…...

利用投标相似度辅助围串标判定
摘要 围标(bid rigging)是一种非法的竞争行为,对市场公平性和公共资源分配造成严重影响。本文探讨了如何利用投标相似度来辅助判定围标行为。通过详细分析投标文件的内容相似性,选取适当的指标进行相似度计算,并结合实…...

iOS 开发者的 Flutter 入门课
作为一名 iOS 开发者,入门 Flutter 需要了解一些新的工具和概念,但也能利用你已有的知识和技能。以下是一个详细的入门指南,帮助你快速上手 Flutter: 1. 环境设置 首先,你需要设置开发环境。 安装 Flutter SDK 前往…...

单机版k8s搭建
环境配置: 关闭防火墙和交换内存 systemctl stop ufwsudo swapoff -a安装Docker 更新安装包 sudo apt-get update安装依赖 sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates获取证书 curl -fsSL http://mirrors.a…...

IDEA创建Spring项目无法使用Java8的解决方案
文章目录 一,创建Project,无法选择Java81,无法选择Java82,选择JDK17报错 二,原因分析1,Spring Boot将来会全力支持Java17,不再维护支持Java8的版本 三,解决方案1,使用国内…...

无障碍快捷方式图标
问题背景 测试反馈,无障碍快捷方式和setting里的无障碍图标不一致。 无障碍快捷方式悬浮窗 1、悬浮窗在systemui中 frameworks\base\packages\SystemUI\src\com\android\systemui\accessibility\floatingmenu\AccessibilityTargetAdapter.java 图标获取方式&…...

基于LangChain的RAG开发教程(二)
v1.0官方文档:https://python.langchain.com/v0.1/docs/get_started/introduction/ 最新文档:https://python.langchain.com/v0.2/docs/introduction/ LangChain是一个能够利用大语言模型(LLM,Large Language Model)能…...

Nifi 与 Kettle
01 Kettle简介 Kettle是一个开源的ETL(Extract-Transform-Load)工具,可以用于数据集成、数据转换和数据处理等任务。它提供了一组可视化的设计工具,使得用户可以通过简单的拖拽和连接来构建数据流程,并且还支持多种数据…...

uniapp安卓端实现语音合成播报
最初尝试使用讯飞语音合成方式,能获取到语音数据,但是数据是base64格式的,在安卓端无法播放,网上有说通过转成blob格式的url可以播放,但是uniapp不支持转换的api;于是后面又想其他办法,使用安卓插件播报原生安卓语音播报插件 - DCloud 插件市场 方案一(讯飞语音合成) 1.在讯飞…...

Studying-代码随想录训练营day31| 56.合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结
第31天,贪心最后一节(ง •_•)ง💪,编程语言:C 目录 56.合并区间 738.单调递增的数字 968.监控二叉树 贪心算法总结 56.合并区间 文档讲解:代码随想录合并区间 视频讲解:手撕合并区间 题目…...

springboot装修接单平台-计算机毕业设计源码25005
摘要 随着装修行业的快速发展和数字化趋势,传统的装修接单方式已显不足以满足用户需求,因此建立一个便捷高效的平台具有重要意义。通过利用Java语言的跨平台特性和强大的编程能力,结合SpringBoot框架的快速开发特性和Mysql数据库的稳定性&…...

matlab仿真 信道(下)
(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真 刘学勇编著第四章内容,有兴趣的读者请阅读原书) 之前的内容还剩下simulink的仿真过程。 3.simulink中的AWGN模块仿真 系统框图如图所示,TX和RX 模块需要单独实现…...

华宇携TAS应用中间件亮相2024年山东江信智能信创产品推介会
信创产业是数据、网络安全的基础,也是“新基建”的重要内容,将成为拉动经济发展的重要抓手之一。 7月5日,以“信守时代机遇,创造辉煌未来”为主题的山东江信智能信创产品推介会在济南举办。本次产品推介会汇聚了国内众多信息技术…...

单向链表的数据存储(申请堆空间)
函数功能: 0.排序(逆置和顺序排序) 1.回显 2.头插 3.位插 4.尾插 5.尾删 6.头删 7.位删 8.查找 (按值或按位查找) 9.修改 (按值或按位修改) 10.退出 main.c …...

MySQL8之mysql-community-common的作用
在MySQL 8中,mysql-community-common是一个软件包,它提供了MySQL服务器和客户端库所需的一些共同文件。具体来说,mysql-community-common的作用包括但不限于以下几点: 1. 提供基础配置和错误信息 错误信息和字符集包:…...