`
thecloud
  • 浏览: 880717 次
文章分类
社区版块
存档分类
最新评论

Python之道–实例和类的继承以及运算符重载

 
阅读更多
Python版本:2.7.4
主机环境:Gentoo with Linux Kernel 3.4.36
原创作品,转载请标明:http://blog.yanming8.cn/archives/79

Python中关于类和实例的关系比JAVA,C++等语言中的类之间的关系要简单的多。对于学过C++或JAVA语言的我们,类和对象已经很熟悉了,他们的设计思想似乎也已经融入了我们的身体,这里不再多说他们的概念。

这里只是展示几个Python的类的实例,用来说明Python中的类和实例以及类的继承。
下面的实例有三个类:FirstClass,SecondClass,ThordClass

class FirstClass:
def setdata(self,value):
self.data = value
def __init__(self,value):
self.data = value
def display(self):
print self.data


class SecondClass(FirstClass):
def display(self):
print ‘Current value is %s’ % self.data


class ThirdClass(SecondClass):
def __add__(self,other):
return ThirdClass(self.data + other)
def __str__(self):
return ‘ThirdClass: %s’ % self.data
def mul(self,value):
self.data *= value

三个类的定义如上面所示,FirstClass是基类,SecondClass继承了FirstClass,而ThirdClass又继承了SecondClass。

a = FirstClass(“First Class”)
a.display()
a.setdata(‘Again First Class’)
a.display()

b = SecondClass(‘Second Class’)
b.display()
b.setdata(‘Again Second Class’)
b.display()

c = ThirdClass(“Third Class”)
c.display()
c = c + ‘ Again’
c.display()
c.mul(8)
print c

第三个类中通过定义__**__函数来重载了加法运算,重载了print打印字符串的内置函数str() 。函数的运行结果如下:
First Class
Again First Class
Current value is Second Class
Current value is Again Second Class
Current value is Third Class
Current value is Third Class Again
ThirdClass: Third Class AgainThird Class AgainThird Class AgainThird Class AgainThird Class AgainThird Class AgainThird Class AgainThird Class Again
分享到:
评论

相关推荐

    Python运算符重载用法实例分析

    本文实例讲述了Python运算符重载用法。分享给大家供大家参考。具体如下: 在Python语言中提供了类似于C++的运算符重在功能: 一下为Python运算符重在调用的方法如下: Method Overloads Call for __init__ 构造...

    Python运算符重载用法实例

    本文实例讲述了Python运算符重载用法。分享给大家供大家参考。具体分析如下: python中,我们在定义类的时候,可以通过实现一些函数来实现重载运算符。 例子如下: # -*- coding:utf-8 -*- ''''' Created on 2013-3...

    Python运算符重载详解及实例代码

    Python运算符重载  Python语言提供了运算符重载功能,增强了语言的灵活性,这一点与C++有点类似又有些不同。鉴于它的特殊性,今天就来讨论一下Python运算符重载。  Python语言本身提供了很多魔法方法,它的运算符...

    Python正确重载运算符的方法示例详解

    说到运算符重载相信大家都不陌生,运算符重载的作用是让用户定义的对象使用中缀运算符(如 + 和 |)或一元运算符(如 – 和 ~)。说得宽泛一些,在 Python 中,函数调用(())、属性访问(.)和元素访问 / 切片([]...

    python 运算符 供重载参考

    二元运算符 特殊方法 + __add__,__radd__ – __sub__,__rsub__ * __mul__,__rmul__ / __div__,__rdiv__,__truediv__,__rtruediv__ // __floordiv__,__rfloordiv__ % __mod__,__rmod__ ** __...

    Python3 操作符重载方法示例

    实际上,“运算符重载”只是意味着在类方法中拦截内置的操作……当类的实例出现在内置操作中,Python自动调用你的方法,并且你的方法的返回值变成了相应操作的结果。以下是对重载的关键概念的复习: 运算符重载让类...

    简单了解python关系(比较)运算符

    您可能感兴趣的文章:Python正确重载运算符的方法示例详解Python的条件语句与运算符优先级详解Python入门学习之字符串与比较运算符总结Python中逻辑运算符的使用实例说明Python中比较运算符的使用python

    python基础知识归纳及实例(全面).zip

    python注释问题、关键字、基本数据类型、数据类型、数学功能、运算符/表达式、if/for/while等语句、(列表、集合、元组、字典)的使用及其各自中的方法、迭代器、各类函数(递归、回调等)、变量作用域、装饰器、栈/...

    python3代码中实现加法重载的实例

    我们想要知道数目的总和,只要通过+就能实现,这是我们在做题上经常用到的符号。但是在python中不能直接使用,我们需要借助一些代码或者函数帮助我们实现对象的相加。...Python 关于运算符重载的规则: 不能重载内置类

    Python-面向对象和内存分析 2.zip

    ================面向对象和内存分析================== 086.面向对象和面向过程的区别_执行者思维_设计者思维 087.对象的进化故事 ...110.特殊方法和运算符重载 111.特殊属性 112.对象的浅拷贝和深拷贝_内存分析

    Python-函数和内存分析 2.zip

    ================面向对象和内存分析================== 086.面向对象和面向过程的区别_执行者思维_设计者思维 087.对象的进化故事 ...110.特殊方法和运算符重载 111.特殊属性 112.对象的浅拷贝和深拷贝_内存分析

    Python面向对象类编写细节分析【类,方法,继承,超类,接口等】

    本文实例讲述了Python面向对象类编写技术细节。分享给大家供大家参考,具体如下: 类代码编写细节 继续学习类、方法和继承。 class语句 以下是class语句的一般形式: class (superclass,...): data = value def ...

    Python实现扩展内置类型的方法分析

    本文实例讲述了Python实现扩展内置类型的方法。分享给大家供大家参考,具体如下: 简介 除了实现新的类型的对象方式外...这个类知识包装了Python的列表,以及附加的集合运算。 class Set: def __init__(self, value=

    Python扩展内置类型详解

    下例把一些集合函数变成方法,而且新增了一些基本运算符重载,实现了新的集合对象。对于多数类而言,这个类只是包装了Python列表,以及附加的集合运算。 #File setwrapper.py class Set: def __init__(self,value...

    Python中有趣在__call__函数

    换句话说,我们可以把这个类型的对象当作函数来使用,相当于 重载了括号运算符。 class g_dpm(object): def __init__(self, g): self.g = g def __call__(self, t): return (self.g*t**2)/2 计算地球场景的时候,...

    基于python中__add__函数的用法

    运算符重载 _add ##定义:让自定义的类生成的对象(实例)能够使用运算符进行操作 class Vector01: ‘'‘定义一个一维向量''' def init(self,x): self.x = x def str(self): ‘'‘定义新生成的返回值是什么,如果没有...

    疯狂JAVA讲义

    1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6 1.3.2 Java程序的运行机制和JVM 6 1.4 开发Java的准备 7 1.4.1 安装JDK 8 学生提问:不是说JVM是运行Java程序的虚拟机吗?那...

Global site tag (gtag.js) - Google Analytics