Python教程:方法重载

news2024/11/17 12:40:08

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码

方法重载

方法重载在Python中起着关键作用。

方法有时接受零参数,有时接受一个或多个参数。

当我们以不同的方式调用同一个方法时,这就被称为方法重载。

Python不像其他语言那样默认支持重载方法。

在Python中,两个或多个方法不能有相同的名字,因为方法重载允许我们使同一个操作符具有不同的含义。让我们详细讨论一下方法重载。

如果同一个类中的两个或多个方法采取不同的参数,它们可能有相同的名字。

方法重载的特性允许同一个操作符有多种解释。

重载是指一个方法或操作符可以在同一名称下执行许多功能。

现在,让我们用一个基本的例子来讨论方法重载,在这个例子中,我们用同一个参数执行两个不同的事情。

例子:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:702813599
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
class methodOverload:
    def MethodHi (self, user=None):
        if user is not None:
            print('Hello ' + user)
        else:
            print('Hello')
MethodObj = methodOverload()
MethodObj.MethodHi()
MethodObj.MethodHi('Hasnain')

输出:

正如你在这个例子中所看到的,我们创建了一个类methodOverload ,在这个类中我们定义了方法MethodHi ,这个方法将在有名字和没有名字的情况下向用户打招呼。

在该类之后,我们使用该类创建了一个对象实例,并在有参数和无参数的情况下调用它。

这种用不同参数加载函数的方式被称为方法重载。

现在,让我们讨论一下在我们的Python程序中使用方法重载的优势。

优点

在Python程序中使用方法重载有很多优点。

其中一些如下:

  1. 方法重载减少了程序的复杂性、函数或方法。它使用户可以在没有参数、只有一个参数或有多个参数的情况下简单地使用它。

  2. 方法重载提高了代码质量,使其高效,并涵盖了大部分的用例,使我们的应用程序获得成功。
    方法重载增加了程序的可重用性,并使其易于使用。

现在,让我们通过一些方法重载的例子,我们将涵盖方法重载的不同方面。

当我们制作相同的函数,并希望以不同的方式工作时,我们可以使用方法重载。

在同一个方法中使用不同的数据类型

在我们的第一个例子中,我们将制作一个类addition ,并使用不同的数据类型,用同一个方法执行两个任务。当数据类型为整数时,程序会进行检查,那么答案将是数字的加法。

如果数据类型是字符串,答案将是字符串的串联。我们将使用一个for 循环,通过参数并检查所有参数。

如果它们是整数,它们就被加起来。如果它们是字符串,它们将被合并

例子:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:702813599
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def addition(datatype, *args):
    if datatype =='int':
        result = 0
        for x in args:
            result = result + x
        print(result)
    if datatype =='str':
        result = []
        for x in args:
            result.append(x)
        print(result[0], result[1])
addition('int',7, 11)
addition('str', 'Hello', 'python')

输出:

在上面的例子中,当我们提供整数作为数据类型与数字相加时,我们收到的是数字的相加。

但是当我们把字符串作为数据类型,并传递字符串时,同一个方法将字符串连接起来并显示结果。

多调度装饰器

现在,让我们来看看另一个有点棘手的例子。

在这个例子中,我们将使用有效的方式来执行方法重载。

我们需要使用下面的命令来安装多重调度装饰器。

pip install multipledispatch

安装后,我们将把它导入我们的程序中。

它派发了三个整数和三个浮点数,并显示了以下结果。

例子:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:702813599
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from multipledispatch import dispatch
@dispatch(int,int,int)
def multiply(oneInt,twoInt,threeInt):
    ans = oneInt * twoInt * threeInt
    print(ans);
@dispatch(float,float,float)
def multiply(oneInt,twoInt,threeInt):
    ans = oneInt * twoInt * threeInt
    print(ans);
multiply(3,7,8)
multiply(3.6,5.9,9.9)

输出:

正如你在上面的例子中所看到的,我们可以使用多个派发装饰器来发送不同的数据类型,并对我们想使用的所有数据类型使用相同的方法来获得结果。

尾语

好了,今天的分享就差不多到这里了!

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇 更多源码、资料、素材、解答、交流 皆点击下方名片获取呀👇👇👇

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

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

相关文章

Windows mysql 5.7 msi版、mysql 8.0 msi版下载、安装教程,附详细图文

大家好,今天为大家带来的是 mysql 5.7 msi , MySql 8.0 版本的下载、安装教程,附详细图文。本文以 5.7 版本为例子,帮助大家讲解。希望对大家有所帮助 文章首发地址 一、下载地址 这里提供一下 CSDN 镜像下载地址,有…

ESP-07S进行TCP 通信测试

一,TCP Server 为 AP 模式,TCP Client 为 Station 模式。 这里电脑pc作为TCP Server,ESP-07S作为TCP Client 。 二,电脑端配置。 1,开启热点。 2,转到“设置”,编辑热点信息。 3,关闭…

ROS2 Galactic安装

ROS2 Galactic安装 ROS2 Galactic安装字体编码检查添加ros2仓库到本机安装ROS2系统测试ROS卸载ros2 ROS2 Galactic安装 字体编码检查 安装需要设置本级为UTF-8字体,使用如下指令检查: locale # check for UTF-8sudo apt update && sudo apt …

【C++】空间配置器 allocator:原理及底层解析

文章目录 空间配置器一级空间配置器二级空间配置器1. 内存池2. SGI-STL中二级空间配置器设计 - - 哈希桶3. 二级空间配置器的空间申请 空间配置器的默认选择空间配置器的在封装:添加了数据类型大小空间配置器对象的构造与析构 容器中的 allocator 空间配置器 提到空…

移动办公管理系统低代码解决方案

随着企业数字化转型的加速,人工智能、云计算、大数据等技术应用的愈加广泛,数字化的办公系统在企事业内部编织起一套高效、畅通的信息互联体系,极大推动了企事业单位生产力的发展。 但与此同时,由于需要依赖固定的办公场所和固定…

最值得收藏的顶级专业数据恢复软件列表 [持续更新]

互联网上充斥着很多的数据恢复软件,每个软件都声称自己是最好的。现在该同意谁的观点呢?我们创建了 2023 年顶级专业数据恢复软件列表。下载顶级一流数据恢复专业软件的免费试用版,我们强烈建议用户评估演示版本,然后选择付费版本…

Python 樱花

Python实现樱花 效果图 (源码在下面) 源码: from turtle import * from random import * from math import *def tree(n, l):pd() # 下笔# 阴影效果t cos(radians(heading() 45)) / 8 0.25pencolor(t, t, t)pensize(n / 3)forward(l…

面试经典 150 题 1 —(数组 / 字符串)— 88. 合并两个有序数组

88. 合并两个有序数组 方法一&#xff1a; class Solution { public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {for(int i 0; i<n;i){nums1[mi] nums2[i];}sort(nums1.begin(),nums1.end());} };方法二&#xff1a; clas…

CRMEB 标准版商城系统新增主题风格颜色【超级完整教程】

一、后台 1.新增主题图片 assets/images/brown.jpg和assets/images/brownsign.png 2.修改admin/src/pages/setting/themeStyle/index.vue 3.修改admin/src/pages/marketing/sign/index.vue 4.修改admin/src/pages/system/group/visualization.vue &#xff08;第三步和第四步…

Rust专属开发工具——RustRover发布

JetBrains最近推出的Rust集成开发工具——RustRover已经发布&#xff0c;官方网站&#xff1a;RustRover: Rust IDE by JetBrains JetBrains出品过很受欢迎的开发工具IntelliJ IDEA、PyCharm等。 RustRover优势 Rust集成环境&#xff0c;根据向导可自动下载安装rust开发环境提…

企业APP混乱繁杂?WorkPlus助您实现统一入口管理

在现代企业中&#xff0c;随着移动应用的不断发展和应用&#xff0c;公司内部往往存在着各种各样的APP。这些APP不仅需要单独下载和安装&#xff0c;而且管理起来也显得非常繁琐。为了解决这一问题&#xff0c;公司统一APP入口逐渐成为了企业的追求。而在众多选择中&#xff0c…

充电保护芯片TP4054国产替代完全兼容DP4054DP4054H 锂电充电芯片

■产品概述 DP4054H是-款完整的采用恒定电流/恒定电压单节锂离子电池充电管理芯片。其SOT小封装和较少的外部元件数目使其成为便携式应用的理想器件&#xff0c;DP4054H可 以适合USB电源和适配器电源工作。 由于采用了内部PMOSFET架构&#xff0c;加上防倒充电路,所以不需要外…

一文图解Golang管道Channel

在 Go 语言发布之前&#xff0c;很少有语言从底层为并发原语提供支持。大多数语言还是支持共享和内存访问同步到 CSP 的消息传递方法。Go 语言算是最早将 CSP 原则纳入其核心的语言之一。内存访问同步的方式并不是不好&#xff0c;只是在高并发的场景下有时候难以正确的使用&am…

CTF | CTF比赛题解分享

本文由掌控安全学院 - sbhglqy 投稿 前言&#xff1a;由于此次比赛的题目较多&#xff0c;所以这是这个比赛的第一篇wp&#xff0c;共20题&#xff0c;先记录一下&#xff0c;防止忘记。里面有些题目是新手题较为简单&#xff0c;但也有许多有意思的题目&#xff0c;真的是做的…

N个元素进栈 出栈情况种数

文章目录 1.逐一求解2.卡特兰数的引入3.得出结论 1.逐一求解 面对此类问题 我们无法直接分析元素个数 为N的情况 通常我们都会逐一分析 设定一个函数 f(N):N为元素个数 f(N)为出栈顺序种数 显然: f(1) 1:af(2) 2:a,b b,af(3) 5:a,b,c a,c,b b,a,c b,c,a /*c,a,b*/ …

【血压仪器】开发血压计方案pcba电路板

血压计方案测量准确&#xff0c;语音播报结果&#xff0c;大屏幕&#xff0c;显示更清晰&#xff0c;算法经过大量临床测试&#xff0c;更稳定等特点&#xff0c;另外对于此类方案&#xff0c;由于已经拥有成熟方案&#xff0c;可配合客户需求开发设计&#xff0c;可以在短时间…

opencv-phase 函数

计算梯度强度和方向 梯度的方向与边缘的方向总是垂直的。图像中的边缘可以指向各个方向&#xff0c;通常会取水平&#xff08;左、右&#xff09;、垂直&#xff08;上、下&#xff09;、对角线&#xff08;左上、右上、左下、右下&#xff09;等八个不同的方向计算梯度。 角度…

gds/网表导入virtuoso注意事项

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口 gds和网表导入到virtuoso中都需要添加参考库,这里需要注意的是如果上层模块/顶层调用下层模块时参考库时,需要把library中的模块cell的单独copy到新的库中,模块的via layout或module schematic和sy…

将一个shapefile 由地理坐标系统投影到投影坐标系统

如题&#xff1a; 所需数据&#xff1a; idll.shp&#xff0c;一个以十进制度表示经纬度数值的shapefile&#xff0c;为Idaho 州的轮廓图。 任务要求: 定义idll.shp空间参考为地理坐标系North American Datum 1927&#xff0c;并将idll.shp 投影到Idaho 州横轴墨卡托&#xf…

桶装水一键订水系统,支持通过手机端一键订水票;

桶装水一键订水系统&#xff0c;支持通过手机端一键订水票、模版消息推送送水状态&#xff0c;支持门店送水员一键接单送水&#xff0c;上门核销完成送水过程的专业送水(订水)系统&#xff1b; 桶装水订水送水系统&#xff08;多门店版&#xff09; 1、专属门店 在线建立专属门…