1、把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定。简单的说,组合用于“有一个”的场景中,继承用于“是一个”的场景中。例如,水池里有一个乌龟,天上有一个鸟,地上有一个小甲鱼,这些适合使用组合。青瓜是瓜,女人是人,鲨鱼是鱼,这些就应该使用继承啦实例如下:

class Turtle:

def __init__(self,x):

self.num = x

class Fish:

def __init__(self,x):

self.num = x

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()

2、类、类对象和实例对象

当你这个类定义完的时候,类定义就变成类对象,可以直接通过“类名.属性”或者“类名.方法名()”引用或使用相关的属性或方法。

3、对于类的应用,我们一般不要试图定义出类的所有特性和方法,应该利用继承和组合的机制来进行扩展,另外,我们还可以利用不同的词性来进行命名,对于属性一般是用名词,对于方法名一般用动词。

4、绑定

Python严格要求方法需要有实例才可以被调用,这种限制其实就是python所谓的绑定。

5、在一个类中定义一个变量,用于跟踪该类有多少个实例被创建(当实例化一个对象,这个变量+1,当销毁一个对象,这个变量自动-1):

实现代码如下:

class C:

count = 0

def __init__(self):

C.count += 1

def __del__(self):

C.count -= 1

6、定义一个栈(Stack)类,用于模拟一种具有后进先出(LIFO)特性的数据结构。至少需要有以下方法:

方法名

含义

isEmpty()

判断当前栈是否为空(返回 True 或 False)

push()

往栈的顶部压入一个数据项

pop()

从栈顶弹出一个数据项(并在栈中删除)

top()

显示当前栈顶的一个数据项

bottom()

显示当前栈底的一个数据项

实现代码如下:

class Stack:

def __init__(self):

self.stack = []

def Isempty(self):

if len(self.stack) == 0:

self.Isempty1=True

print(self.Isempty1)

else:

self.Isempty1 = False

print(self.Isempty1)

def push(self,x):

self.stack.append(x)

def pop(self,y):

if len(self.stack) == 0:

print("我为空的,不能够弹出")

else:

self.stack.pop(y)

def top(self):

if len(self.stack) == 0:

print("我为空的,不能够弹出")

else:

print(self.stack[len(self.stack)-1])

def bottom(self):

if len(self.stack) == 0:

print("我为空的,不能够弹出")

else:

print(self.stack[0])

a = Stack()

a.Isempty()

a.pop(2)

a.push(3)

a.push(4)

a.push(5)

a.top()

a.bottom()

python 类继承和组合_python类与对象的组合与继承相关推荐

  1. python 类组合_python类与对象的组合与继承

    1.把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定.简单的说,组合用于"有一个"的场景中,继承 ...

  2. python中组合与继承的区别_python类与对象的组合与继承

    1.把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定.简单的说,组合用于"有一个"的场景中,继承 ...

  3. python类的继承与多态_python类的继承和多态

    现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个 ...

  4. python类的继承super方法_Python类的继承super相关原理解析

    看了网上许多关于super.mro.C3的介绍感觉没有一份很容易初学者理解的文档,直接看C3算法的话,比较难理解,也没必要,如果掌握一套规律的话,会轻松许多.我将网上这些博主的文章进行一个梳理总结,最 ...

  5. python 元类的call总结_Python 类与元类的深度挖掘 I【经验】

    上一篇介绍了 Python 枚举类型的标准库,除了考虑到其实用性,还有一个重要的原因是其实现过程是一个非常好的学习.理解 Python 类与元类的例子.因此接下来两篇就以此为例,深入挖掘 Python ...

  6. python类中最大的_python类的学习笔记(一)

    python中一切皆对象,类型的本质就是类. 在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是'类',对象是则是这一类事物中具体的一个. 声明函数的方法: def ...

  7. python类初始化详解_python类中super() 的使用解析

    描述 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复 ...

  8. python中getattr详解_Python类中方法getitem和getattr详解

    请分享高手帮小编详解一下Python中的getattr内置函数没明白这个内置函数得意思.麻烦帮小编讲解一下. 其实这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以 ...

  9. python类定义的讲解_python类定义的讲解

    Python中的类属性和对象属性的区别详解 类属性: class Employee(object): emCount=0 def __init__(self,name,salary): self.na ...

最新文章

  1. Word2Vec详解
  2. jdbc 连接 Oracle 进行基本的增删改查
  3. Docker原理之CGroups
  4. Android Call requires API level 11 (current min is 8)的解决方案
  5. 在java中对于构造函数_在Java语言中,下面有关于构造函数的描述正确的是()。
  6. python中datetime函数怎么获得当年年份_Python 日期和时间函数使用指南
  7. VirtualBox虚拟机移到另外一台机器,需要在设置中禁用usb
  8. Win10右键新建中没有新建文件夹,电脑右键新建文件夹不见了
  9. 如何更新计算机的flash player,在电脑上如何升级Adobe Flash Player插件|电脑进行Flash Player更新的方法...
  10. H3C 无线控制器+瘦ap 配置
  11. DDoS原理、分类与防御
  12. 在上海创业的日子之注册公司的详细流程
  13. 计算机c盘垃圾,清理电脑C盘垃圾的小妙招
  14. python初学火车座位判断_初学Python实现学校图书馆座位自动抢座预约
  15. CNS服务器(配合百度直连)游戏修复专栏
  16. Win10 企业版ltsc 无法访问samba网络共享问题及解决!(转)
  17. 苹果系统小技巧 篇六:Mac的10个必备小技巧,原来Windows的功能早在Mac上实现了
  18. 影像组学工作站 | 医学影像组学高分SCI教你躺平,零基础,零代码完整复现!
  19. Apache Kudu 1.15.0的分布式集群部署
  20. 牛顿差商多项式的理解与C++实现

热门文章

  1. Centos 7编译安装 LAMP 环境
  2. 【翻译】How-To: Using the N* Stack, part 5
  3. 计算机参评高校168所,168所大学排行榜单!计算机科学与技术专业哪些高校专业实力最强!...
  4. 搜索 —— 启发式搜索 —— A* 算法
  5. 全排列(信息学奥赛一本通-T1199)
  6. 奇偶ASCII值判断(信息学奥赛一本通-T1042)
  7. 已知先序和中序得出后序
  8. 19 CO配置-控制-产品成本控制-产品成本计划编制-定义日期控制
  9. 根据children动态复杂表头excel导出_Java高级特性-注解:注解实现Excel导出功能
  10. matlab 嵌入式,面向嵌入式系统的 MATLAB 和 Simulink