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:在构造方法中,原始数据中....
随机推荐
- Charlse 抓包
下载Charlse:https://www.charlesproxy.com/ 安装使用: https://www.cnblogs.com/ceshijiagoushi/p/6812493.html ...
- java读取项目资源文件的方法
1.把资源文件放在项目的Resource文件夹下,并使其设置成为资源文件夹(通过idea或者eclise)2. Thread.currentThread().getContextClassLoader ...
- 【Python基础】装饰器的解释和用法
装饰器的用法比较简单,但是理解装饰器的原理还是比较复杂的,考虑到接下来的爬虫框架中很多用到装饰器的地方,我们先来讲解一下. 函数 我们定义了一个函数,没有什么具体操作,只是返回一个固定值 请注意一下缩 ...
- 巨蟒python全栈开发数据库攻略4:多表操作&Navicat&pymysql
1.多表查询 2.连表补充 3.boss工具=>Navicat 4.索引加速寻找工具=>everything 5.pymysql 6.pymysql初识 7.pymysql的各个方法
- 【Python之路】第二十篇--MySQL(二)
视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名], 用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 1.创建视图 --格式:CREATE ...
- mysql delete 多表
DELETE u.*,acu.*,alu.* FROM user u, accountuser acu ,algouser alu WHERE u.userId=11 and acu.userID=1 ...
- php 汉字验证码
代码: captcha.php <?php //实现简单的验证码 //session_start session_start(); //画布 $image = imagecreatetrueco ...
- 2015-03-18——mongodb的简单配置
参考网址:http://www.cnblogs.com/mecity/archive/2011/06/11/2078527.html#3060056 mongod 数据库启动程序 mongo 数据库操 ...
- HTML里引号的输出与显示
关于输入框中显示双引号和单引号 前台显示解决办法: 方法一: 单引号<input type="text" value="'"> 双引号<inp ...
- python线程间数据共享(示例演示)
``` import threading data_list = [] def task(arg): data_list.append(arg) print(data_list) def run(): ...