【Python学习之旅】---多态(类的相关知识)

#多态反应的是执行时候的状态,不同对象调用的相同方法,调用同一个类,但运行结果不一样,属于继承的一种体现机制。class H2O:    def __init__(self,name,wendu):        self.name=name        self.wendu=wendu    def turn_ice(self):        if self.wendu < 0:            print(‘【%s】温度太低成冰了‘ %self.name)        elif self.wendu > 0  and self.wendu <100 :            print(‘【%s】温度太高融成水了‘ %self.name)        else:            print(‘【%s】温度太高成蒸汽了‘ %self.name)

w1=H2O(‘水‘,20)      #水实例化i1=H2O(‘冰‘,-2)      #冰实例化z1=H2O(‘蒸汽‘,1000)   #蒸汽实例化

w1.turn_ice()        #水调用H2O的方法i1.turn_ice()        #冰调用H2O的方法z1.turn_ice()        #蒸汽调用H2O的方法

def fun(obj):       #将重复调用的代码用函数来实现    obj.turn_ice()  #任一一对象调用此方法

fun(z1)   #传入对象

#执行结果:

【水】温度太高融成水了
【冰】温度太低成冰了
【蒸汽】温度太高成蒸汽了
【蒸汽】温度太高成蒸汽了

原文地址:https://www.cnblogs.com/chenyuxia/p/12130431.html

时间: 2024-10-13 08:27:40

【Python学习之旅】---多态(类的相关知识)的相关文章

【Python学习之旅】---类的装饰器

#类的装饰原理,自定义一个高阶函数(把函数当做参数传入,返回值也是相同函数地址)def foo(bar): print(bar) bar.x=1 #操作Name的属性字典 bar.y=2 return bar@foo #Name=foo(Name)class Name: pass print(Name.__dict__) #输出Name的属性字典 #一切皆对象,函数也有属性字典@foodef test(): print('test函数')test()print(test.__dict__) #执

180分钟的python学习之旅

最近在很多地方都可以看到Python的身影,尤其在人工智能等科学领域,其丰富的科学计算等方面类库无比强大.很多身边的哥们也提到Python非常的简洁方便,比如用Django搭建一个见得网站只需要半天时间即可,因此也吸引了我不小的兴趣.之前相亲认识过一个姑娘是做绿色环保建筑设计行业的,提过她们的建筑物的建模也是使用Python,虽然被女神给拒绝了,但学习还是势在必行的,加油. 这部分只涉及python比较基础的知识,如复杂的面向对象.多线程.通信等知识会放在之后的深入学习中介绍,因此整个学习过程也

学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)

这篇文章主要介绍了学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等),需要的朋友可以参考下 Ruby 这个就不用多说了 RVM 用于帮你安装Ruby环境,帮你管理多个Ruby环境,帮你管理你开发的每个Ruby应用使用机器上哪个Ruby环境.Ruby环境不仅仅是Ruby本身,还包括依赖的第三方Ruby插件.都由RVM管理. Rails 这个也不用多说,著名开发框架.详细看 http://zh.wikipedia.org/wiki/Ruby_on_Rai

Python学习之旅—面向对象进阶知识:类的命名空间,类的组合与继承

前言 上篇博客笔者带领大家初步梳理了Python面向对象的基础知识,本篇博客将专注于解决三个知识点:类的命名空间,类的组合以及面向对象的三大特性之一继承,一起跟随笔者老看看今天的内容吧. 1.类的命名空间 在上一篇博客中,我们提到过对象可以动态添加属性,一起来回忆下昨天的知识点,看如下的代码: class A: pass a = A() a.name = 'alex' print(a.name) 这里我们手动为a对象添加了一个属性name,然后直接打印可以得到a对象的名称.通过这个例子,我们可以

Python学习总结19:类(一)

在Python中,可以通过class关键字定义自己的类,通过类私有方法“__init__”进行初始化.可以通过自定义的类对象类创建实例对象. class Student(object): count = 0 books = [] def __init__(self, name, age): self.name = name self.age = age pass 1. 数据属性 在上面的Student类中,”count””books””name”和”age”都被称为类的数据属性,但是它们又分为类

【IOS学习基础】OC类的相关

几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一些旧东西,但但是既然遇到了,还是复习一下. 一.类与对象 1.类:类是定义同一类所有属性和方法的蓝图或原型. 2.对象:用来描述客观事物的一个实体,由具体的属性和方法构成. 3.类与对象的关系:类是用来制作无数实体(对象)的工程图纸. 4.类的特征:属性 5.类的行为:方法 二.封装 1.类就是封装

Python学习之旅—Day06(字符串+字典+列表重点方法)

前言: 本篇博客主要针对字符串,字典和列表中的一些容易忽略的重点方法进行整理,以期进一步夯实大家的基础. [001]字符串方法--isspace()方法 isspace()方法主要检测字符串是否只由空格组成.我们通过如下的实际例子来查看该方法: str1 = " " print(str1.isspace()) str2 = "cisco 123" print(str2.isspace()) str3 = " #" print(str2.isspa

我的Python学习之旅1

什么是Python? 可以理解为"一种解释型的.面向对象的.带有动态语义的高级程序设计语言" Python的发展,可以分成以下几个重要的阶段: ---CNRI时期:CNRI是资助Pyhon发展初期的重要单位,Python1.5版之前的成果大部分都在此时期内完成. ---BeOpen时期:Guido van Rossum与BeOpen公司合作,此期间将Python2.0推出,甚至Python1.6也同时问世,但 原则上已经分别维护了. ---DC时期:目前Guido已经离开BeOpen公

python类的相关知识第二部分

类的继承.多态.封装 一.类的继承 1.应用场景: 类大部分功能相同,大类包含小类的情况 例如: 动物类 共性:都要吃喝拉撒.都有头有脚 特性: 猫类.走了很轻,叫声特别,喜欢白天睡觉 狗类.的叫声很大,晚上睡觉 2.继承顺序 在python2版本中多重继承有分两种继承循序 (1).一直往上找 .找到最高级的父类再重另外一个分支找,直到找到为止. (2).一直往上找,找到最高级父类的下一层后就不找了.从另外一个分支找,另外一个分支没找到最后才找最高级的父类. 再python3中只有第一种继承循序

Python学习_12_方法和类定制

方法 在上一篇随笔中,简单提到了类的某些方法:__init__()等的调用,并简要说明方法和函数的区别. 方法是在类内部定义的函数,方法也是对象,所以方法是类的属性,这就是为什么说实例的方法存在于类定义中.而在ruby中,方法肯定是存在于类中的,实例的单件方法就存在于单件类中,python中并没有单件类,并且方法本质也是属性,所以实例的方法也可以存在于自身,而在调用方法时,同样遵循命名空间的查找顺序.但是方法和一般是属性任然存在区别: from types import MethodTypecl