python 类继承和组合_python类与对象的组合与继承
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类与对象的组合与继承相关推荐
- python 类组合_python类与对象的组合与继承
1.把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定.简单的说,组合用于"有一个"的场景中,继承 ...
- python中组合与继承的区别_python类与对象的组合与继承
1.把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定.简单的说,组合用于"有一个"的场景中,继承 ...
- python类的继承与多态_python类的继承和多态
现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个 ...
- python类的继承super方法_Python类的继承super相关原理解析
看了网上许多关于super.mro.C3的介绍感觉没有一份很容易初学者理解的文档,直接看C3算法的话,比较难理解,也没必要,如果掌握一套规律的话,会轻松许多.我将网上这些博主的文章进行一个梳理总结,最 ...
- python 元类的call总结_Python 类与元类的深度挖掘 I【经验】
上一篇介绍了 Python 枚举类型的标准库,除了考虑到其实用性,还有一个重要的原因是其实现过程是一个非常好的学习.理解 Python 类与元类的例子.因此接下来两篇就以此为例,深入挖掘 Python ...
- python类中最大的_python类的学习笔记(一)
python中一切皆对象,类型的本质就是类. 在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是'类',对象是则是这一类事物中具体的一个. 声明函数的方法: def ...
- python类初始化详解_python类中super() 的使用解析
描述 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复 ...
- python中getattr详解_Python类中方法getitem和getattr详解
请分享高手帮小编详解一下Python中的getattr内置函数没明白这个内置函数得意思.麻烦帮小编讲解一下. 其实这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以 ...
- python类定义的讲解_python类定义的讲解
Python中的类属性和对象属性的区别详解 类属性: class Employee(object): emCount=0 def __init__(self,name,salary): self.na ...
最新文章
- Word2Vec详解
- jdbc 连接 Oracle 进行基本的增删改查
- Docker原理之CGroups
- Android Call requires API level 11 (current min is 8)的解决方案
- 在java中对于构造函数_在Java语言中,下面有关于构造函数的描述正确的是()。
- python中datetime函数怎么获得当年年份_Python 日期和时间函数使用指南
- VirtualBox虚拟机移到另外一台机器,需要在设置中禁用usb
- Win10右键新建中没有新建文件夹,电脑右键新建文件夹不见了
- 如何更新计算机的flash player,在电脑上如何升级Adobe Flash Player插件|电脑进行Flash Player更新的方法...
- H3C 无线控制器+瘦ap 配置
- DDoS原理、分类与防御
- 在上海创业的日子之注册公司的详细流程
- 计算机c盘垃圾,清理电脑C盘垃圾的小妙招
- python初学火车座位判断_初学Python实现学校图书馆座位自动抢座预约
- CNS服务器(配合百度直连)游戏修复专栏
- Win10 企业版ltsc 无法访问samba网络共享问题及解决!(转)
- 苹果系统小技巧 篇六:Mac的10个必备小技巧,原来Windows的功能早在Mac上实现了
- 影像组学工作站 | 医学影像组学高分SCI教你躺平,零基础,零代码完整复现!
- Apache Kudu 1.15.0的分布式集群部署
- 牛顿差商多项式的理解与C++实现
热门文章
- Centos 7编译安装 LAMP 环境
- 【翻译】How-To: Using the N* Stack, part 5
- 计算机参评高校168所,168所大学排行榜单!计算机科学与技术专业哪些高校专业实力最强!...
- 搜索 —— 启发式搜索 —— A* 算法
- 全排列(信息学奥赛一本通-T1199)
- 奇偶ASCII值判断(信息学奥赛一本通-T1042)
- 已知先序和中序得出后序
- 19 CO配置-控制-产品成本控制-产品成本计划编制-定义日期控制
- 根据children动态复杂表头excel导出_Java高级特性-注解:注解实现Excel导出功能
- matlab 嵌入式,面向嵌入式系统的 MATLAB 和 Simulink