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:在构造方法中,原始数据中....
随机推荐
- dropload 使用表
移动端下拉刷新.上拉加载更多插件 依赖 (dependence) Zepto 或者 jQuery 1.7以上版本,推荐jQuery 2.x版本(二者不要同时引用) Zepto or jQuery 1. ...
- js的实例方法和静态方法分析
var Person=function(){}; Person.say=function(){ console.log('I am a Person,I can say.') }; Person.pr ...
- python 之 赋值和拷贝(你真的了解吗)
现象:先上一段代码. >>> import copy >>> a = [1,2,3,4,['a','b']] >>> b = a >> ...
- android应用安全——组件通信安全(Intent)
这里主要涉及到了Activity.Content Provider.Service.Broadcast Receiver等.这些如果在Androidmanifest.xml配置不当,会被其他应用调用, ...
- Poj3087
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8842 Accepted: 4077 Desc ...
- 【BZOJ3123】[Sdoi2013]森林 主席树+倍增LCA+启发式合并
[BZOJ3123][Sdoi2013]森林 Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整 ...
- win7(iis7)无法加载运行CSS文件的解决方法
在打开或关闭window功能中的Internet信息服务里的万维网服务=>常见HTTP功能=>静态内容 ,将其选上 即可了,如下图
- Pipeline inbound
精进篇:netty源码死磕7 巧夺天工--Pipeline入站流程详解 1. Pipeline的入站流程 在讲解入站处理流程前,先脑补和铺垫一下两个知识点: (1)如何向Pipeline添加一个Ha ...
- pug.compile() will compile the Pug source code into a JavaScript function that takes a data object (called “locals”) as an argument.
Getting Started – Pug https://pugjs.org/api/getting-started.html GitHub - Tencent/wepy: 小程序组件化开发框架 h ...
- PHP 神奇的sprintf函数
sprintf 1.定义 sprintf() 函数将字符串进行各种类型的格式化. 2.语法 sprintf(format,arg1,arg2,arg++) format:格式类型. arg1,arg2 ...