Python 类的三大特性的综合运用 案例
# --------------------- 类的三大特性的综合运用 案例 -------------------------
# 定义三个类:小狗,小猫,人
# 小狗:姓名,年龄(默认1岁) 吃饭,玩,睡觉,看家(格式:名字是xx,年龄xx岁的小狗在xx)
# 小猫:姓名,年龄(默认1岁) 吃饭,玩,睡觉,捉老鼠(格式:名字是xx,年龄xx岁的小猫在xx)
# 人:姓名,年龄(默认1岁),宠物 吃饭,玩,睡觉,(格式:名字是xx,年龄xx岁的人在xx)
# 养宠物(让所以的宠物吃饭,玩,睡觉)
# 工作(让所有的宠物做自己工作职能的工作) class Person():
def __init__(self, name, pets, age=1):
self.name = name
self.pets = pets
self.age = age def eat(self):
print("%s 在吃饭" % self) def play(self):
print("%s 在玩" % self) def sleep(self):
print("%s 在睡觉" % self) def yangPets(self):
print("%s 养宠物" % self)
for pet in self.pets:
pet.eat()
pet.play()
pet.sleep() def make_pets_work(self):
# for pet in self.pets:
# if isinstance(pet, Dog):
# pet.wacth()
# elif isinstance(pet, Cat):
# pet.cacth() # 上面的如果在加入其他的对象可能就需要重新写判断条件,可以把宠物的智能都写成相同的一个函数
for pet in self.pets:
pet.work() def __str__(self):
return "名字为{},年龄为{}的人".format(self.name, self.age) class Dog():
def __init__(self, name, age = 1):
self.name = name
self.age = age def eat(self):
print("%s 在吃饭" % self) def play(self):
print("%s 在玩" % self) def sleep(self):
print("%s 在睡觉" % self) # 改造
# def wacth(self):
def work(self):
print("%s 看家" % self) def __str__(self):
return "名字为{},年龄为{}的小狗".format(self.name, self.age) class Cat():
def __init__(self, name, age=1):
self.name = name
self.age = age def eat(self):
print("%s 在吃饭" % self) def play(self):
print("%s 在玩" % self) def sleep(self):
print("%s 在睡觉" % self) # 改造
# def cacth(self):
def work(self):
print("%s 捉老鼠" % self) def __str__(self):
return "名字为{},年龄为{}的小猫".format(self.name, self.age) d = Dog("小黑", 18)
c = Cat("小花", 20)
print(d) # 名字为小黑,年龄为18的小狗
d.eat() # 名字为小黑,年龄为18的小狗 在吃饭
d.play() # 名字为小黑,年龄为18的小狗 在玩
print("-" * 30) p = Person("小明", [d, c], 30)
p.yangPets()
print("-" * 30)
p.make_pets_work() print("=" * 30) # -------------------- 改造上面的案例 ---------------------
class Animal():
def __init__(self, name, age = 1):
self.name = name
self.age = age def eat(self):
print("%s 在吃饭" % self) def play(self):
print("%s 在玩" % self) def sleep(self):
print("%s 在睡觉" % self) class Person(Animal):
def __init__(self, name, pets, age=1):
super(Person, self).__init__(name, age)
self.pets = pets # 修改命名方式
def yang_pets(self):
print("%s 养宠物" % self)
for pet in self.pets:
pet.eat()
pet.play()
pet.sleep() def make_pets_work(self):
# for pet in self.pets:
# if isinstance(pet, Dog):
# pet.wacth()
# elif isinstance(pet, Cat):
# pet.cacth() # 上面的如果在加入其他的对象可能就需要重新写判断条件,可以把宠物的智能都写成相同的一个函数
for pet in self.pets:
pet.work()
#
def __str__(self):
return "名字为{},年龄为{}的人".format(self.name, self.age) class Dog(Animal):
def work(self):
print("%s 看家" % self) def __str__(self):
return "名字为{},年龄为{}的小狗".format(self.name, self.age) class Cat(Animal):
def work(self):
print("%s 捉老鼠" % self) def __str__(self):
return "名字为{},年龄为{}的小猫".format(self.name, self.age) d = Dog("小黑", 10)
c = Cat("小花", 11)
p = Person("小明", [d, c], 20)
p.yang_pets()
p.make_pets_work()
# --------------------- 类的三大特性的综合运用 案例 -------------------------
# 定义三个类:小狗,小猫,人
# 小狗:姓名,年龄(默认1岁) 吃饭,玩,睡觉,看家(格式:名字是xx,年龄xx岁的小狗在xx)
# 小猫:姓名,年龄(默认1岁) 吃饭,玩,睡觉,捉老鼠(格式:名字是xx,年龄xx岁的小猫在xx)
# 人:姓名,年龄(默认1岁),宠物 吃饭,玩,睡觉,(格式:名字是xx,年龄xx岁的人在xx)
# 养宠物(让所以的宠物吃饭,玩,睡觉)
# 工作(让所有的宠物做自己工作职能的工作) class Person():
def __init__(self, name, pets, age=):
self.name = name
self.pets = pets
self.age = age def eat(self):
print("%s 在吃饭" % self) def play(self):
print("%s 在玩" % self) def sleep(self):
print("%s 在睡觉" % self) def yangPets(self):
print("%s 养宠物" % self)
for pet in self.pets:
pet.eat()
pet.play()
pet.sleep() def make_pets_work(self):
# for pet in self.pets:
# if isinstance(pet, Dog):
# pet.wacth()
# elif isinstance(pet, Cat):
# pet.cacth() # 上面的如果在加入其他的对象可能就需要重新写判断条件,可以把宠物的智能都写成相同的一个函数
for pet in self.pets:
pet.work() def __str__(self):
return "名字为{},年龄为{}的人".format(self.name, self.age) class Dog():
def __init__(self, name, age = ):
self.name = name
self.age = age def eat(self):
print("%s 在吃饭" % self) def play(self):
print("%s 在玩" % self) def sleep(self):
print("%s 在睡觉" % self) # 改造
# def wacth(self):
def work(self):
print("%s 看家" % self) def __str__(self):
return "名字为{},年龄为{}的小狗".format(self.name, self.age) class Cat():
def __init__(self, name, age=):
self.name = name
self.age = age def eat(self):
print("%s 在吃饭" % self) def play(self):
print("%s 在玩" % self) def sleep(self):
print("%s 在睡觉" % self) # 改造
# def cacth(self):
def work(self):
print("%s 捉老鼠" % self) def __str__(self):
return "名字为{},年龄为{}的小猫".format(self.name, self.age) d = Dog("小黑", )
c = Cat("小花", )
print(d) # 名字为小黑,年龄为18的小狗
d.eat() # 名字为小黑,年龄为18的小狗 在吃饭
d.play() # 名字为小黑,年龄为18的小狗 在玩
print("-" * ) p = Person("小明", [d, c], )
p.yangPets()
print("-" * )
p.make_pets_work() print("=" * ) # -------------------- 改造上面的案例 ---------------------
class Animal():
def __init__(self, name, age = ):
self.name = name
self.age = age def eat(self):
print("%s 在吃饭" % self) def play(self):
print("%s 在玩" % self) def sleep(self):
print("%s 在睡觉" % self) class Person(Animal):
def __init__(self, name, pets, age=):
super(Person, self).__init__(name, age)
self.pets = pets # 修改命名方式
def yang_pets(self):
print("%s 养宠物" % self)
for pet in self.pets:
pet.eat()
pet.play()
pet.sleep() def make_pets_work(self):
# for pet in self.pets:
# if isinstance(pet, Dog):
# pet.wacth()
# elif isinstance(pet, Cat):
# pet.cacth() # 上面的如果在加入其他的对象可能就需要重新写判断条件,可以把宠物的智能都写成相同的一个函数
for pet in self.pets:
pet.work()
#
def __str__(self):
return "名字为{},年龄为{}的人".format(self.name, self.age) class Dog(Animal):
def work(self):
print("%s 看家" % self) def __str__(self):
return "名字为{},年龄为{}的小狗".format(self.name, self.age) class Cat(Animal):
def work(self):
print("%s 捉老鼠" % self) def __str__(self):
return "名字为{},年龄为{}的小猫".format(self.name, self.age) d = Dog("小黑", )
c = Cat("小花", )
p = Person("小明", [d, c], )
p.yang_pets()
p.make_pets_work()
Python 类的三大特性的综合运用 案例的更多相关文章
- 第9章 Java类的三大特性之一:继承
1.什么是继承 子类继承父类就是对父类的扩展,继承时会自动拥有父类所拥有的处private之外的所有成员作用:增加代码复用语法格式: class 子类名 extends 父类名{…………}第9章 Ja ...
- (转载)OC学习篇之---类的三大特性:封装,继承,多态
之前的一片文章介绍了OC中类的初始化方法和点语法的使用,今天来继续学习OC中的类的三大特性,我们在学习Java的时候都知道,类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今 ...
- OC基础 类的三大特性
OC基础 类的三大特性 OC的类和JAVA一样,都有三大特性:继承,封装,多态,那么我们就来看一下OC中类的三大特性. 1.继承 继承的特点: (1)子类从父类继承了属性和方法. (2)子类独有的属 ...
- 转 OC温故:类的三大特性(封装,继承,多态)
原文标题:OC学习篇之---类的三大特性(封装,继承,多态) 我们都知道,面向对象程序设计中的类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性 ...
- OC学习篇之---类的三大特性(封装,继承,多态)
之前的一片文章介绍了OC中类的初始化方法和点语法的使用:http://blog.csdn.net/jiangwei0910410003/article/details/41683873,今天来继续学习 ...
- Python:Day24 类、类的三大特性
Python有两种编程方式:函数式+面向对象 函数式编程可以做所有的事情,但是否合适? 面向对象: 一.定义 函数: def + 函数名(参数) 面象对象: class bar---> 名字 ...
- Python 面向对象的三大特性:封装,继承,多态
# 面向对象的三大特性:封装,继承,多态 # 继承的影响:资源的继承,资源的使用,资源的覆盖,资源的累加 # 资源的继承,在Python中的继承是指能使用父类的资源,而不是说在子类也复制一份父类代码到 ...
- Python - 面向对象编程 - 三大特性之继承
继承 继承也是面向对象编程三大特性之一 继承是类与类的一种关系 定义一个新的 class 时,可以从某个现有的 class 继承 新的 class 类就叫子类(Subclass) 被继承的类一般称为父 ...
- Python 面向对象的三大特性
面向对象的三大特性:继承,封装,多态 什么时候用封装: 同一种功能的时候, 譬如:把一部分数据或方法,封装到同一个类的中 PS:在构造方法中,原始数据中....
随机推荐
- PowerDesigner最基础的使用方法入门学习2
from:http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html 最近要忙期考,但还是决定每天抽点空来写CodeSmith的系 ...
- iOS-tableView会卡顿
其实影响tableView卡顿的因素有很多,我也就其中一些常见的问题来说一下. 在tableView里的tableViewCell中使用许多图片的时候,而且我们大量使用的是 xxx.clipsToBo ...
- 自己根据java的LinkedList源码编写的一个简单的LinkedList实现
自己实现了一个简单的LinkedList /** * Create by andy on 2018-07-03 11:44 * 根据 {@link java.util.LinkedList}源码 写了 ...
- iOS 去掉navgationbar 底部线条
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent]; [[UINavigationBar appearance] ...
- java读取项目资源文件的方法
1.把资源文件放在项目的Resource文件夹下,并使其设置成为资源文件夹(通过idea或者eclise)2. Thread.currentThread().getContextClassLoader ...
- jQuery与Zepto
jQuery和Zepto是我比较常用的插件.其实用法差不太多,可以说Zepto是jQuery的轻量级替代品,但是不要认为Zepto就没有jQuery好用,因为Zepto有jQuery没有的功能,就是移 ...
- 获取当前日期和农历的js代码
来自:http://www.cnblogs.com/Gnepner/archive/2011/09/07/2169822.html 获取当前日期 getToday.js: function GetCu ...
- 使用ADO如何获得SQLSERVER 2K的数据库名的列表
打开数据库连接_ConnectionPtr m_pConn;_RecordsetPtr m_pRs;m_pConn.CreateInstance(__uuidof(Connection));m_pRs ...
- attributes["wv"].nodeValue
w 获取自定义属性的值 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- IO流入门-第六章-FileReader_FileWriter复制
利用FileReader和FileWriter进行复制粘贴 /* 文件复制粘贴 只能复制纯文本文件 2017/4/13 */ import java.io.*; public class FileRe ...