Python:实现多态

定义一个在校人的基类,分别派生出教师和学生,然后放入列表中,实现多态。

#!/usr/bin/python
#Filename:inherit.py

class SchoolMember:
    '''Represents any school member.'''

    def __init__(self, name, age):
        self.name = name
        self.age = age
        print '(Initialized SchoolMember:%s)'%self.name

    def tell(self):
        '''Tell my details'''
        print 'Name:"%s" Age:"%s"'%(self.name, self.age)

class Teacher(SchoolMember):
    '''Represents teacher.'''
    def __init__(self, name, age, salary):
        SchoolMember.__init__(self, name, age)
        self.salary = salary
        print '(Initialized Teacher:%s)'%self.name

    def tell(self):
        SchoolMember.tell(self)
        print 'Salary:"%d"'%self.salary

class Student(SchoolMember):
    '''Represents a student.'''
    def __init__(self, name, age, marks):
        SchoolMember.__init__(self, name, age)
        self.marks = marks
        print '(Initialized Student:%s)'%self.name

    def tell(self):
        SchoolMember.tell(self)
        print 'Marks:"%d"'%self.marks

t = Teacher('Mrs.Shrividya', 40, 30000)
s = Student('Swaroop', 22, 75)

print

members = [t, s]
for member in members:
    member.tell()

print 'Done'
时间: 2024-10-19 06:04:45

Python:实现多态的相关文章

关于python中多态的理解。

学习到多态的时候,不确定自己是否完全理解了python的多态,于是Google观看了众多资料和文献,发现很多编程大佬讲得过于抽象,不便于新手理解,这违背了python的初衷:简单. 所以我在此用通俗一点的方式作了一个总结. 先贴一段代码,在python3中举例: (为了给非科班出身以及中学英语偏科的python学习者更友好的阅读体验,w3n特意添加了中文注释,可以不细看代码,通过注释阅读,主要目的是逻辑理解,代码次要) class Human(object):  # 创建"人"类 de

探索Python的多态是怎么实现的

多态是指通过基类的指针或者引用,在运行时动态调用实际绑定对象函数的行为. 对于其他如C++的语言,多态是通过在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数.如果对象类型是派生类,就调用派生类的函数:如果对象类型是基类,就调用基类的函数. class A { public: virtual void show() { cout <<"A"; } }; class B:public A { public: void s

复习python的多态,类的内部权限调用 整理

#多态的用法 class Dii: passclass Aii(Dii): def run(self): print('一号函数已调用')class Bii(Dii): def run(Dii): print('二号函数已调用')a=Aii()print('第一个run函数调用中')a.run()b=Bii()print('第二个run函数调用中')b.run() ''' 虽然Aii和Bii中有通一个run函数,但是却不会发生python的错误,而且并成功调打印出不同函数中的print里字符串,

Python的多态

实例一: #!/usr/bin/env python #coding:utf-8 """ 什么是多态? 1.一种类型具有多种类型的能力 2.允许不同的对象对同一消息做出灵活的反映 pytyon 中的多态 1.通过继承实现多态(子类可作为父类使用) 2.子类通过重载父类的方法实现多态 动态语言与鸭子模型 1.变量绑定的类型具有不确定性 2.函数和方法可以接收任何类型的参数 3.调用方法时不检查提供的参数类型 4.调用时是否成功由参数的方法和属性确定 5.调用不成功则抛出错误 6

python oop 多态 封装 反射

python中关于OOP的常用术语 抽象/实现 抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于 绘程序结构,从而实现这种模型.抽象不仅包括这种模型的数据属性,还定义了这些数据的接口. 对某种抽象的实现就是对此数据及与之相关接口的现实化(realization).现实化这个过程对于客户 程序应当是透明而且无关的. 封装/接口 封装描述了对数据/信息进行隐藏的观念,它对数据属性提供接口和访问函数.通过任何客户端直接对数据的访问,无视接口,与封装性都是背道而驰的,除

Python面向对象 | 多态

一.多态 多态指的是一类事物有多种形态 python:a 可以接受任意数据类型,对象 默认支持多态. def func(a): pass 动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @abc.abstractmethod def talk(self): pass class People(Animal): #动物的形态之一:人 def talk(self): print('say hello')

python基础----多态与多态性、super函数用法、继承原理

目录: 一.多态与多态性 二.super函数用法 三.继承原理 一.多态与多态性                                                                        ㈠多态: 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承) 1. 序列类型有多种形态:字符串,列表,元组. 2. 动物有多种形态:人,狗,猪 1 import abc 2 class Animal(metaclass=abc.ABCMeta):

【python】-多态

多态的特性:一种接口多种实现 原文地址:https://www.cnblogs.com/linalove/p/8555123.html

python继承,判断类型,多态

1.python中继承 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: class Student(Person): def __init__(self, name, gender,