当前位置: 首页 > news >正文

python的函数与类的定义

目录

1.函数

1.函数的定义

2.输入参数与输出参数的类型

3.输入和输出多个参数

1.普通参数

2.含有任意数量的参数

3.关键字参数

4.普通参数与多个参数的结合

2.类

1.类的定义

 2.类的实例化

3.继承


1.函数

1.函数的定义

def 函数名(输入参数): ''' 文档字符串 ''' 函数体 return 输出参数 

文档字符串用来说明函数的作用

函数体就是实现功能的代码

return可有可无,看是否需要返回内容

2.输入参数与输出参数的类型

函数的输入参数与输出参数均可以为任意的变量类型

该节内容以一个输入参数和一个输出参数为例

def Output(v):'''返回输入的内容'''return v
print(Output('str'))
print(Output(11.0))
print(Output([1,2,3]))

结果为

3.输入和输出多个参数

1.普通参数

输入若干个参数,输出若干个参数

def jiajian(m,n):'''返回两个数的和与差'''return m+n,m-n
a,b=jiajian(3,4)
print(a,b)

结果为

2.含有任意数量的参数

上一篇文章有介绍到,即 *xxxxx,类似于C语言中的*型变量

def Output(*arg):'''返回输入的内容'''return arg
print(Output(1,[2,3]))

结果为

要注意的是返回的时候是arg而不是*arg

3.关键字参数

关键字参数允许在函数调用时使用参数名来指定参数,而不必严格按照函数定义中参数的顺序。

结果为

这里涉及到了参数的默认值,即message='hello'

也涉及到了关键字的调用,可以不安顺序调用,但是要指明关键字

4.普通参数与多个参数的结合

def Output(v,*arg):'''返回输入的内容'''return v,arg
a,*b=Output(1,[1,2],3)
print(a)
print(b)

结果为

2.类

类定义了一种对象的属性和方法,可以创建多个具有相同属性和方法的对象。

一个类包含一个__init__方法 + 很多自定义方法, __init__特殊方法前后均有两个下划线,每一个类中都必须包含此方法。当创建一个类的实例时,__init__方法会自动被调用。

1.类的定义

class Counter: '''一台可以加减的计算器''' def __init__(self, a, b): '''初始化方法,接收两个参数a和b,并将它们赋值给实例的属性''' self.a = a self.b = b def add(self): '''加法方法,返回a和b的和''' return self.a + self.b  def sub(self): '''减法方法,返回a和b的差''' return self.a - self.b

此外类的定义中也可以有默认值,和函数类似,可以改变 

 2.类的实例化

类的实例化是指根据类的定义创建类的实例(也称为对象)。实例化类的过程涉及使用类作为模板,根据类的定义创建一个具体的对象。要实例化类,可以使用类的名称后跟括号()来调用类。这将创建一个类的实例,也称为对象。可以将类的实例赋值给一个变量,以便后续使用。

co1=Counter(3,4)#实例化一个类,为co1
print(co1.add(),co1.sub())

结果为

3.继承

允许一个类从另一个类继承属性和方法,被继承的类称为父类或基类,继承属性和方法的类称为子类或派生类。子类可以获得父类的属性和方法,并可以添加自己的属性和方法,或者重写父类的方法。

以上面的Counter类为例,我们定义一个更高级的类,在此基础上加一个乘法和除法。

class CounterNew(Counter): #指明父类'''一台可以加减的计算器''' def __init__(self, a, b): '''初始化方法,接收两个参数a和b,并将它们赋值给实例的属性''' super().__init__(a,b) #继承父类的方法def mul(self): '''加法方法,返回a和b的和''' return self.a * self.b  def div(self): '''减法方法,返回a和b的差''' return self.a / self.b

对其实例化

coun=CounterNew(3,4)
print(coun.add(),coun.sub(),coun.mul(),coun.div())

结果为

相关文章:

python的函数与类的定义

目录 1.函数 1.函数的定义 2.输入参数与输出参数的类型 3.输入和输出多个参数 1.普通参数 2.含有任意数量的参数 3.关键字参数 4.普通参数与多个参数的结合 2.类 1.类的定义 2.类的实例化 3.继承 1.函数 1.函数的定义 def 函数名(输入参数): 文档字符串 函数体 …...

Parade Series - WebRTC ( < 300 ms Low Latency ) T.B.D

Parade Series - FFMPEG (Stable X64) C:\Conda\parading-cam>ffmpeg -f dshow -i video"Surface Camera Front" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -an -rtsp_transport tcp -f rtsp://127.0.0.1:8554/cam0801...

【ARM】MDK在programming algorithm界面添加FLM

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 解决在programming algorithm界面中无法添加想要的Flash编程算法的问题 2、 问题场景 在对于Debug进行Flash Download进行配置的时候,在programming algorithm界面中有对应的Flash编程算法。可以通过…...

springmvc学习笔记1

springmvc学习笔记part1 总概述图创建步骤创建project并在父工程中导入配置类添加为web工程检查maven配置写handller方法写配置类SpringMVC环境搭建项目部署关键步骤总结 具体设置路径设置注解接收参数(重点param参数接收路径参数接收json参数接收请求头接收和cooki…...

力扣106 从中序与后续遍历序列构造二叉树

文章目录 题目描述解题思路代码 题目描述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7], …...

数字逻辑-时序逻辑电路一

一、实验目的 (1)熟悉触发器的逻辑功能及特性。 (2)掌握集成D和JK触发器的应用。 (3)掌握时序逻辑电路的分析和设计方法。 二、实验仪器及材料 三、实验内容及步骤 1、用D触发器(74LS74&am…...

web 课程

文章目录 格式图片超链接书签链接表格例子横跨束跨 格式 <br /> <br/> #换行图片 <img> 标签是用于在网页中嵌入图像的 HTML 标签&#xff0c;它有一些属性可以用来控制图像的加载、显示和交互。以下是对 <img> 标签常用属性的详细介绍&#xff1a;…...

工业园区智慧水电设备管控系统

在现代工业园区中&#xff0c;水电设备的管控系统起着至关重要的作用。这些系统不仅仅是简单的机械装置&#xff0c;它们更是一种智慧的结合&#xff0c;为工业生产提供了可靠的保障和高效的管理。让我们一起来探索工业园区智慧水电设备管控系统的奥秘。 我们来看看水电设备的…...

Git之版本回退

文章转载于&#xff1a;https://www.jianshu.com/p/3020740561a8 以前&#xff0c;如果是要去除某一块功能&#xff0c;我都是选择性删除&#xff0c;选择性注释&#xff0c;然后前后逻辑各种查看&#xff0c;各种比较。每一次&#xff0c;改完这些我总感觉心好累啊&#xff01…...

「jQuery系列」jQuery 校验表单(Validate)

文章目录 一、校验表单&#xff08;Validate&#xff09;1. 基本用法2. 验证规则3. 国际化4. 插件扩展 二、Validate常用方法1. 基本验证2. 自定义验证规则3. 远程验证&#xff08;通过 AJAX&#xff09;4. 提交处理&#xff08;submitHandler&#xff09;5. 忽略某些元素的验证…...

【Java设计模式】十九、中介者模式

文章目录 1、中介者模式2、案例3、总结 1、中介者模式 如图&#xff1a; 同事类之间关联较多时&#xff0c;整体出现网状结构&#xff0c;耦合度极高。一个对象一变动&#xff0c;好多对象都得改。若变为右边的星形结构&#xff0c;则一个类的变动&#xff0c;只影响自身与中介…...

这个学习Python的神仙网站,后悔没早点发现

Python 作为时下最流行的编程语言&#xff0c;很多初学者都将它作为自学编程的首选。不管是有编程经验的开发者&#xff0c;还是新手小白&#xff0c;在这个 AIGC 时代&#xff0c; Python 都可以带你探索新世界。 入门 Python 绝非难事&#xff0c;但如何让自己坚持学下去是如…...

牛津大学“领域驱动设计”课程

领域驱动设计&#xff08;“DDD”&#xff09;是一种专注于系统领域而不是技术的软件设计方法。重点是构建共享的心理模型并以尽可能简单的方式在代码中表示该领域模型。数据库存储、框架等技术细节被认为是设计的次要方面。该模块将重点关注 DDD 和一般设计以及相关主题&#…...

Redisson分布式锁解决方案

官方地址 官网: https://redisson.org github: https://github.com/redisson/redisson 基于setnx实现的分布式锁存在的问题 redisson分布式锁原理 不可重入: 利用hash结构记录线程id和重入次数不可重试: 利用信号量和PubSub功能实现等待、唤醒, 获取锁失败的重试机制超时释放…...

linux命令深入研究——cat

cat命令&#xff0c;“猫”&#xff0c;可以理解为瞄一眼文件内容&#xff0c;其中可以用重定向符号对文件进行一些修改&#xff0c;如增加&#xff0c;删除文件内容&#xff0c;其命令参数如-n&#xff0c;-s&#xff0c;-b可以输出带有行号的行 如果想要快速删除文件内容&…...

代码随想录算法训练营第40天|343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 题目链接&#xff1a;link 文章讲解&#xff1a;link 视频讲解&#xff1a;link 一、做题感受&第一想法 其实第一反应是回溯……但感觉每层的集合都会很繁琐 二、学习文章后收获 1.动态规划思路 动规五要素分析 dp和i的定义&#xff1a;dp[i]指把i拆分后最…...

二叉树算法

递归序 每个节点都能回到3次! 相当于2执行完然后返回了代码会往下走,来到3节点 小总结: 也就是4节点先来到自己一次,不会执行if,先调用自己左边的那个函数,但是是null,直接返回。 这个函数执行完了,就会回到自己,调用自己右边的那个函数,结果又是空,又返回,回到…...

【2024年5月备考新增】《软考真题分章练习(答案解析) - 4 项目范围管理(高项)》

点击跳转无答案版 1、() includes the processes required to ensure that the project includes all the work required , and only the work required , to complete the project successfully . Managing the project scope is primarily concerned with defining and con…...

Docker拉取镜像存储不足

在使用Docker时&#xff0c;我们经常遇到一个问题&#xff0c;就是拉取镜像时提示存储空间不足。这是因为Docker在拉取镜像时需要将镜像文件下载到本地存储中&#xff0c;而有时本地存储空间不足以容纳完整的镜像文件。 本文将介绍一些解决这个问题的方法&#xff0c;并提供相…...

JUNIT5+Mockito单元测试

文章目录 1、前言2、Maven依赖2.1 JDK21SpringBoot版本基于3.1.02.2 JDK17SpringBoot版本基于2.2.5.RELEASE 3、业务代码4、单元测试 1、前言 之前写过一篇使用testMe自动生成单元测试用例&#xff0c;使用的是junit4来编写的单元测试用例&#xff0c;目前很多新项目都已经使用…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...