【python39--面向对象组合】

一、组合

定义:当几个对象是水平方向的时候,就应该考虑组合,当对象是纵向的时候用继承,组合就是用一个类把2个平级层次的类放在一起

#现在定义一个类,叫水池,水池里面有鱼和乌龟class Turtle:
    def __init__(self,x):
        self.num = x

class Fish:
    def __init__(self,y):
        self.num = y

class Pool:
    def __init__(self,x,y):
        self.turtle = Turtle(x)
        self.fish = Fish(y)

    def print_num(self):
        print(‘共有%d只乌龟%d条鱼‘%(self.turtle.num,self.fish.num))

>>> pool = Pool(1,10)
>>> pool.print_num()
共有1只乌龟10条鱼
>>> 

二、多态

指允许不用类的对象对同一消息做出响应,即:同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)

原文地址:https://www.cnblogs.com/frankruby/p/9562922.html

时间: 2024-11-03 01:45:11

【python39--面向对象组合】的相关文章

python学习面向对象组合

面向对象的命名空间   类中的方法   类中的静态属性   对象的属性类的组合应用 面向对象的命名空间:class A:     country='中国'a=A()a.name='alex'print(a.name)      结果是alex  想要添加属性可以这么添加b=A()print(b.name)       结果是没有name的属性 对象中有地址簿来调用类的方法,表现内存不同,不过实际调用内存相同对象和类调用动态属性表现的地址不一样,实际一样静态属性完全一样地址a.country='中

Python 面向对象 组合-多态与多态性-封装-property

面向对象-组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 1 class Foo: 2 xxx = 111 3 4 class Bar: 5 yyy = 222 6 7 obj = Foo() 8 obj.attr = Bar() 9 10 print(obj.xxx) 11 >>>111 12 print(obj.attr.yyy) 13 >>>222 2.为何要用组合 通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式

Python面向对象 | 组合

软件重用的重要方式,除了继承之外还有另外一种方式,即:组合 一.对象之间的交互 方法可以传参,参数可以是对象. class Person: role = 'person' def __init__(self, name, sex, hp, ad): self.name = name self.sex = sex self.hp = hp self.ad = ad def attack(self,dog): dog.hp -= self.ad print('%s攻击了%s,%s掉了%s点血' %

python全栈学习--Day19(面向对象组合,继承)

一.组合 表示的一种什么有什么的关系 先来说一下,__init__的作用 1 2 3 4 5 6 7 8 9 10 class Dog:     def __init__(self, name, kind, hp, ad):         self.name = name  # 对象属性 属性         self.kind = kind         self.hp = hp         self.ad = ad     def bite(self, p):         p.h

面向对象-组合使用

对象的组合使用: class A: def run(self): print('我居然被曲线运行了???') class B: def __init__(self): self.run_obj = A()b = B()b.run_obj.run() # 原文地址:https://www.cnblogs.com/jbzd/p/9222599.html

JS面向对象——组合使用构造函数模型与原型模型

该模型为创建自定义类型最常用的方式. <!DOCTYPE html> <html> <head> <title>组合使用构造函数模型和原型模型</title> <script type="text/javascript"> //组合使用构造函数模型和原型模型——构造函数模型用于定义实例属性,原型模型用于定义方法和共享属性. function Student(name,age,sex){ this.name=name

面向对象组合继承

function Person(name,sex,age){ this.name = name; this.sex = sex; this.age = age;}Person.prototype.eat = function(){ console.log("每个人都会吃饭");}function Programmer(name,sex,age){ this.habby = "看书"; Person.call(this,name,sex,age)}Programmer

面向对象-组合

继承实现代码重用 class People: school="luffcity" def __init__(self, name, age, sex,): self.name = name self.age = age self.sex = sex class Teacher(People): schoole='Luffycity' def __init__(self,name,age,sex,level,salary): super(Teacher,self).__init__(na

【数据结构与算法】

数据结构与算法概述 数据结构的定义 我们如何把现实中大量而且非常复杂的问题以特定的数据类型(个体)和特定的存储结构(个体的关系)保存到相应的主存储器(内存)中,以及在此基础上为实现某个功能而执行的相应操作,这个相应的操作也叫做算法. 数据结构 == 个体 + 个体关系 算法 == 对存储数据的操作 数据结构的特点 数据结构是软件中最核心的课程. 程序 = 数据的存储 + 数据的操作 + 可以被计算机执行的语言. 算法 衡量算法的标准 时间复杂度 指的是大概程序执行的次数,而非程序执行的时间. 空

python汇总

1.python基础 计算机语言&Python解释器pycharm使用基础语法python数据类型变量赋值,深浅copy三元运算符,文件处理的可读可写 2.函数 函数高阶函数-递归python内置方法名称空间-作用域-装饰器生成器和迭代器 3.模块 模块.包time和datetime模块randomos模块sys模块shutil模块-高级的文件.文件夹.压缩包处理模块json&&pickl&&shelvexml模块configparser解析配置文件hashlib模