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())

结果为

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu20下C/C++编程开启TCP KeepAlive

1、在linux下,测试tcp保活,可以使用tcp自带keepalive功能。 2、几个重要参数: tcp_keepalive_time:对端在指定时间内没有数据传输,则向对端发送一个keepalive packet,单位:秒 tcp_keep…

HTML静态网页成品作业(HTML+CSS+JS)——体育足球介绍设计制作(3个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,使用Javacsript代码实现图片轮播,共有3个页面。 二、作品…

借助ChatGPT提高编程效率指南

PS: ChatGPT无限次数,无需魔法,登录即可使用,网页打开下面 一、借助ChatGPT提高编程效率指南 随着计算机技术的飞速发展,编程已经成为了现代社会中一个非常重要的技能。对于许多人来说,编程不仅是一项工作技能,而且是…

HCIP —— BGP 路径属性 (上)

目录 BGP 路径属性 1.优选Preferred-Value属性值最大的路由 2.优选Local-preference 属性数值大的路由 3.本地始发的BGP路由优先于其他对等体处学习到的路由。 4..优选AS_PATH属性值最短的路由 BGP 路径属性 BGP的路由选路是存在优选规则的,下图为华为官网提供…

【MySQL探索之旅】MySQL数据表的增删查改(初阶)

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ &…

Mac使用自动操作(Automator)发送文件到Android设备

需求场景 在Android开发调试的过程中,当需要把电脑上的文件传输到连接的Android设备时,通常的做法是通过adb push命令。那既然是通过命令操作,是否可以通过可视化的工具来操作呢?例如在Finder中,右击某一个文件或者目…

上海亚商投顾:沪指缩量调整 传媒、游戏股逆势大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日震荡调整,上证50指数跌近1%,保险等权重板块走低,中国太保跌超…

【Java/Image】给指定路径下图片反色并加上当前日期形式的水印

【需求】 从通达信软件截屏下来的K线图,在打印前需要反色,打印后需要手动加上当前日期,这些都可以由程序代替手工完成。 以下是期待的效果。 【关键点】 给图片反色用的是梯度法,这个在网络上已有成型代码; 给图片…

职场中的“刺猬”与“狐狸”:如何找到你的竞争优势?

职场如战场,竞争激烈。每个人都试图找到自己的竞争优势,以在职场中脱颖而出。在寻找竞争优势的过程中,我们可以从"刺猬"和"狐狸"的角度来思考。那么,什么是"刺猬"和"狐狸"呢?…

《汇编语言》- 读书笔记 - 第17章-外传之 DOSBox-X 调用 int 13 读写磁盘

《汇编语言》- 读书笔记 - 第17章-外传之 DOSBox-X 调用 int 13 读写磁盘 总结dosbox-x.conf 不完美读取成功写入成功参考资料 总结 DOSBox 中访问 int 13h 始终没反应。网上查了下有人说是没支持,建议使用 DOSBox-X 经过无数遍尝试后: 环境状态Win11…

构建社区服务平台的智慧架构

社区服务平台作为连接社区居民与各类服务资源的桥梁,承载着提升居民生活品质、促进社区发展的重要使命。本文将深入探讨社区服务平台的架构设计理念、核心功能和发展前景,助力读者了解如何构建智慧化、便捷化的社区服务平台,为社区居民提供更…

【Java设计模式】二十、迭代器模式

文章目录 1、迭代器模式2、案例3、总结4、在源码中的实际应用 1、迭代器模式 提供了一种遍历的方式提供了一个对象来顺序访问聚合对象(集合、容器)中的一系列数据,而不会暴露聚合对象的内部表示 相关角色: 抽象聚合&#xff1a…

厚膜高压电阻器应用

EAK高压厚膜电阻器可用于广泛的应用。其中包括电源、配电系统、ESD 保护、电子显微镜、空气电离设备、雷达设备、X 射线发生器和 ATE。 示例电路包括高压泄放器、电压平衡、电压调节和分压器。在这篇文章中,我们将讨论选择电阻器时要考虑的关键问题。 电压泄放电路…

IDEA开启Run Dashboard

1、Run Dashboard是什么,为什么要使用 Run Dashboard 是 IntelliJ IDEA 中的一个工具窗口,用于管理和监视项目中正在运行的应用程序和配置。它提供了一种集中管理运行和调试过程的方式,可以让开发人员更方便地查看和控制正在运行的应用程序。…

CSAPP Malloc lab

CSAPP Malloc Lab 目标 实现一个简单的动态存储分配器。 评分标准 空间利用率应当减少internal 和 external fragmentation. memory utilization memory utilization payload / heap size fragmentation internal fragmentation external fragmentation throughput T 越接…

vue中ref 根据多选框所选数量,动态地变换box的高度

查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…

如何调整yolo混淆矩阵的大小,使其更加美观

1、找到xxx/utils/metrics.py 2、找到这个函数 3、往下拉找到这里&#xff0c;自己对照改一下 import seaborn as snarray self.matrix / ((self.matrix.sum(0).reshape(1, -1) 1E-9) if normalize else 1) # normalize columnsarray[array < 0.005] np.nan # dont a…

分布式之Sentinel使用和源码分析

Sentinel使用和源码分析 1、服务雪崩效应 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了问题&#xff0c;调用这个服务就会出现线程阻塞的情况&#xff0c;此时若有大量的请求涌入&#xff0c;就会出现多条线程阻塞等待&#xff…

Redirect相应重定向无法访问WEB-INF下的静态资源,可以跳到外部资源(比如www.baidu.com)

相应重定向无法访问WEB-INF目录下静态资源&#xff0c;WEB-INF目录下静态资源受保护。 访问外部资源 访问Servlet5.do&#xff0c;就跳到百度页面

【快速上手ProtoBuf】proto 3 语法详解

1 &#x1f351;字段规则&#x1f351; 消息的字段可以⽤下⾯⼏种规则来修饰&#xff1a; singular &#xff1a;消息中可以包含该字段零次或⼀次&#xff08;不超过⼀次&#xff09;。 proto3 语法中&#xff0c;字段默认使⽤该规则。repeated &#xff1a;消息中可以包含该…