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

原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/10029970.html

时间: 2024-08-04 08:14:32

python类与对象的组合与继承的相关文章

python 类和对象的属性

python类和对象的属性分为类属性和对象属性两大类,类属性属于类,而对象属性属于对象. 1. 父类的对象属性会被子类的对象继承. 2. 父类的类属性会被子类继承,还是作为类属性,如果父类改变了类属性,父类和子类的类属性都会被改变. 3. 子类继承父类的类属性可以通过类名+属性名使用,但是一旦发生赋值,就会新定义一个相同名字的子类自己的类属性. 4. 类的对象可以通过对象名+属性名使用类属性,但是一旦发生赋值,就会新定义一个相同名字的对象属性,而且不会被继承. eg: >>> class

python类与对象各个魔法方法总结

1.python类与对象各个魔法方法总结: 2.各个魔法方法应用举例: 3.实例训练: (1)我们都知道在 Python 中,两个字符串相加会自动拼接字符串,但遗憾的是两个字符串相减却抛出异常.因此,现在我们要求定义一个 Nstr 类,支持字符串的相减操作:A – B,从 A 中去除所有 B 的子字符串. class Nstr(str): def __sub__(self,other):  self=list(self)         other=list(other) for i in ot

Python基础- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)

标签: python对象 2017-07-01 16:28 79人阅读 评论(0) 收藏 举报  分类: python(11)  版权声明:本文为广大朋友交流学习,如有纰漏望不吝赐教,若存在版权侵犯请及时与我联系 目录(?)[+] 一.初识类和对象 在python3中类型就是类 先定义类在产生相对应的对象,也就是现有了概念再有了实体 class Garen: camp = 'Demacia' def attack(self): print('attack') 1.如何使用类 在python3:

python自动化_day6_面向对象_组合,继承,多态

复习:http://www.cnblogs.com/Eva-J/articles/7228075.html 模块 1 import collections,os,sys,re,random,time 2 collections.defaultdict() #默认字典 默认字典的优势就是该字典中如果没有元素就直接添加 3 collections.OrderedDict() #有序字典 字典是有序的可以直接用索引调用 4 collections.namedtuple() #可命名元祖 可以把两个元组

Python 类与其对象的创建和应用

1.创建新类Athlete,创建两个唯一的对象实例sarah james,他们会继承Athlete类的特性 >>> class Athlete: def __init__(self,a_name,a_dob=None,a_times=[]): self.name=a_name self.dob=a_dob self.times=a_times >>> sarah=Athlete('Sarah Sweeney','2002-07-02',['2:58','2.34','1

python类和对象-扩展

1.为类或对象动态创建属性或方法 2.__slots__ = ('name','age'),[实例]只能创建指定的属性属性或方法 ---新式类 3.执行父类的构造函数的不同Father.__init__(self) --经典类super(Son,self).__init__() --新式类 4.Person.__bases__ 只会显示一层继承的所有父类5.__call__ __call__ 一个已经实例化的对象p,在调用p()6.python中一切都是对象,类本身也是对象,类是由type产生的

Python 类和对象-上

#类和对象 class Human: #属性 -> 成员属性(变量) ear = 2 mouth = 1 sex = 'man' age = 28 name = 'zhangwang' married = False color = 'yellow' #特征 -> 成员方法(函数) def walk(self): print('直立行走') def eat(self): print('吃饭') def sleep(self): print('睡觉') def playgame(self): p

python类和对象理解

类的概念 类(class)抽象的概念,比如说人类.鸟类.水果.是一个总的称呼,没有具体到某个物体: 对象(object,指具体实例,instance): 类定义的语法: class 类名: 执行语句 类变量 类方法 类最重要的两部分就是类变量和类方法,类成员之间的可以相互调用. 程序可以在类中给新变量赋值就是增加类变量,可以通过del语句删除已有类的变量. 在__init__构造函数(构造函数后面会说到)里面的是实例变量,程序可以任何位置(类里面或者类外面)增加实例变量,删除则用del语句. 在

第13课 python 类与对象1

今日我们开始 学习类 & 对象.....(上个课时,我们只是说了debug,这种技能,只能说概念,真正debug,还是要自己动手) 学习很多对象语言,我自己都很模糊,什么事对象编程语言.....但是学python后,就清晰了... 类 对象 类:我们从人类,男 女 去区分. ####说明类 是一个 分类,有男人,女人相同的特征,共同的属性..所以 我们叫做类: ####在python 中 分 字符,整数,浮点类,这些类,其实说白了是一种概念化的内容.类下面是对象(具体的每个) ####还是不可以