说起python重载,大家学过其他的语言比如说C#语言的话,应该知道有方法重载和运算符重载的概念,但是python重载的话,有它自己的特殊性,下面我说说自己的一点看法,希望大家踊跃拍砖。

python 的重载主要包括方法重载和运算符重载。

1.python 方法重载: 其他的语言一般对于方法重载的话,主要是根据参数的类型不同或者是数量不同来区分同名的方法。而python则比较特殊,它本身是动态语言,方法的参数是没有类型的,当调用传值的时候才确定参数的类型,故对参数类型不同的方法无需考虑重载。对参数数量不同的方法,则(大多数情况下)可以采用参数默认值来实现。

比如你可以定义函数的默认值:

def info(x,y,z=1):

pass

2.python 运算符重载: 在C#中,我们通过使用关键字operator定义一个运算符方法,并定义与所在类相关的运算符行为。在 Python中,运算符重载的方式更为简单——每一个类都默认内置了所有可能的运算符方法,只要重写这个方法,就可以实现针对该运算符的重载。例如以下是重载加法操作:

class Info(object):    def __init__(self):        self.a = 11        self.b = 22    def __add__(self,x):        return self.a * self.ba = Info()b = Info()print a + b

上面的例子是重写了+操作符号,你也可以重载其他的运算符。比如你可以重载乘号运算符,感兴趣的话,可以做做这到题目。http://bbs.cnpythoner.com/viewthread.php?tid=252&extra=

希望上面讲的2点能够让你对python重载有个简单的认识。

python重载是什么意思_python重载相关推荐

  1. python vector_[流畅的Python]读书笔记之十三运算符重载

    运算符重载 Python 关于运算符重载的规则: 不能重载内置类型的运算符 不能新建,只能重载 某些运算符不能重载--is.and.or 和 not 一元运算符 __neg__ __pos__ __i ...

  2. python 类继承 父类初始化_python之子类继承父类时进行初始化的一些问题

    直接看代码: classPerson:def __init__(self): self.name= "jack" classStudent(Person):def __init__ ...

  3. 拷贝构造函数、析构函数、赋值操作符重载、取地址操作符重载和const修饰的取地址操作符重载...

    2019独角兽企业重金招聘Python工程师标准>>> 在我们学习C++的过程中,我们难免会遇到类,在类中有6个默认的函数,它们分别为:构造函数.拷贝构造函数.析构函数.赋值操作符重 ...

  4. C++——运算符的重载---以成员函数方式重载---以友元函数方式重载

    一.运算符的重载 1.运算符的重载 允许把标准运算符(如+ - * /等运算符)应用于自定义数据类型的对象,可以提高程序的可读性,运算符的重载本质上还是函数重载.运算符仅仅是语法上的方便,它是另一种函 ...

  5. python log函数怎么打_Python的log日志功能及设置方法

    python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客

  6. java 继承 重载_java – 使用继承的重载方法

    My question is, why isn't ClassB's method being used? 不对.使用的方法是ClassB的方法,它从ClassA继承. 我认为这里的混乱背后的主要原因 ...

  7. python判断素数的函数_Python素数prime函数练习_Python源码实操

    Python素数prime函数练习_Python源码实操 素数prime函数练习 1) 写一个函数isprime(x) 判断x是否为素数,如果是素数,返回True,否则返回False def ispr ...

  8. php是否直接支持函数的重载,php函数重载的替代方法--伪重载详解

    对于弱类型语言来说,PHP函数重载,并不像一般的OOP那样.而弱类型本来就不区分,所以无法通过这些来实现.但是,可以通过下面的方法来实现简单的伪重载吧. 函数重载的替代方法-伪重载,下面看一个具体的实 ...

  9. scala 方法重载_Scala中的方法重载

    scala 方法重载 Scala方法重载 (Scala method overloading) Method overloading is a method that is redefined in ...

最新文章

  1. node.js学习笔记之promise
  2. Java枚举类使用方式
  3. 为什么parsefloat加出来还是字符串_为什么酒店的包子做的这么好吃?里面加了什么说出来你可能不信...
  4. mysql使用between..and 查询日期范围注意事项
  5. 关于Myeclipse10的激活
  6. web前端开发技术现状与发展_2020年,Web前端开发有哪些发展趋势?
  7. 数据分析学习笔记1---zip(),numpy.where
  8. [leetcode]Unique Paths
  9. 群晖Docker套件注册Harbor私有镜像仓库,并下载运行自己发布的Docker镜像
  10. 华为云计算工程师证好考吗?
  11. 路普达-区块链技术的本质与未来应用趋势
  12. nginx 配置之 proxy_pass参数详解
  13. systemd服务详解
  14. MMDetection亲测安装教程
  15. 客户关系管理项目——用户登录模块设计
  16. 转载之-中值滤波均值滤波
  17. 北师大的计算机科学专业排名,2021北京师范大学王牌优势专业排名 什么专业最好...
  18. Ubuntu 16.04安装搜狗输入法
  19. 【笔记】PBR,BRDF总结
  20. sniffer是利用计算机的,利用SNIFFER技术侦测局域网中的ARP欺骗及解决方案

热门文章

  1. Python用python-docx抓取公众号文章写入word
  2. Kali Linux 详细安装步骤
  3. 2020-05-11
  4. nginx反向代理文件下载失败
  5. 5G 时代,优酷推出的帧享究竟是什么?
  6. C#基础语法————变量
  7. iOS6下关于屏幕旋转的控制
  8. python简历项目经验在哪里找_Linux运维工程师简历项目经验
  9. 2017ccps网络赛 1003 Friend-Graph(暴力)HDU 6152
  10. 标签云的实现(使用jQuery插件jqcloud)