综合之前的类的学习,做以下实例练习:(建议先不要看代码,自己先试着写;代码仅供参考,有多种实现方法)

1. Triangle & Equilateral

1). 创建class Triangle 表示三角形,包含三个属性值:angle1、angle2、angle3;

类方法 check_angles():若三个角相加 == 180,return True;若不是,return False

1 classTriangle(object):2 def __init__(self,angle1,angle2,angle3):3 self.angle1 =angle14 self.angle2 =angle25 self.angle3 =angle36

7 defcheckAngles(self):8 if (self.angle1+self.angle2+self.angle3) == 180:9 returnTrue10 else:11 returnFalse12

13 t1 = Triangle(40,50,90)14 print(t1.angle1,t1.angle2,t1.angle3)15 print(t1.checkAngles())16 t2 = Triangle(40,50,91)17 print(t2.checkAngles())

Triangle

2). 创建class Equilateral 继承上例1的Triangle,表示等边三角形,同Triangle不同点在于,其属性值的三个角均为60;而对应的 check_angles() 自然始终返回True

1 classEquilateral(Triangle):2 def __init__(self,angle1=60,angle2=60,angle3=60):3 self.angle1 =angle14 self.angle2 =angle25 self.angle3 =angle36

7 t3 =Equilateral()8 print(t3.angle1,t3.angle2,t3.angle3)9 print(t3.checkAngles())

Equilateral 1

如上示例代码可满足条件,但 更好的做法是调用父类构造函数,并重写check_angles() 使其始终返回 True,参见代码如下

1 classEquilateral(Triangle):2 def __init__(self,angle1=60,angle2=60,angle3=60):3 Triangle.__init__(self,angle1,angle2,angle3)4

5 defcheckAngles(self):6 returnTrue7

8 t3 =Equilateral()9 print(t3.angle1,t3.angle2,t3.angle3)10 print(t3.checkAngles())

Equilateral 2

2.  Car & ElectricCar

1).创建class Car 成员变量condition = "new",包含三个构造属性:model,color,mpg;

类方法 displayCar() print 拼接的字符串 This is a {color} {model} car with {mpg} MPG.  如 "This is a blue Xmodel car with 40 MPG."

类方法 driveCar() 改变成员变量condition = "used"

1 classCar(object):2 condition = "new"

3 def __init__(self,model,color,mpg):4 self.model =model5 self.color =color6 self.mpg =mpg7

8 defdisplayCar(self):9 print ("This is a {s.color} {s.model} car with {s.mpg} MPG.".format(s=self))10

11 defdriveCar(self):12 self.condition = "used"

13

14 car1 = Car("DeLorean", "silver", 88)15 car1.displayCar()16 print(Car.condition)17 print(car1.condition)18 car1.driveCar()19 print(car1.condition)

Car

2). 创建class ElectricCar 继承 Car,新增一属性变量 battery_type;重写driveCar()函数,改变 condition = "like new"

1 classElectricCar(Car):2 def __init__(self,model,color,mpg,battery_type):3 Car.__init__(self,model,color,mpg)4 self.battery_type =battery_type5

6 defdriveCar(self):7 self.condition = "like new"

8

9 car2 = ElectricCar("dd","Red",88,"molten salt")10 print(car2.battery_type,car2.condition)11 car2.displayCar() #继承Car方法

12 car2.driveCar() #调用重写后的方法

13 print(car2.condition)

ElectricCar

3. Point3D

创建class Point3D,表示三维坐标上的一个点,包含三个属性变量:x,y,z

类 __repr__ 方法显示为 (x,y,z)

类方法 distance() 返回改点距原点(0,0,0) 的距离

Python 类方法 __repr__  重写 print class_name 时的显示,参考代码即可理解

1 importmath2 classPoint3D(object):3 def __init__(self,x,y,z):4 self.x =x5 self.y =y6 self.z =z7 def __repr__(self):8 return ("({s.x},{s.y},{s.z})".format(s=self))9

10 defdistance(self):11 d = math.sqrt(self.x**2+self.y**2+self.z**2)12 returnd13

14 point1 = Point3D(3,4,0)15 print(point1)16 print(point1.distance())

Point3D

4. Employee & PartTimeEmployee

1).创建class Employee,包含成员变量hour_wage =20,构造函数包含属性变量:name;

类方法 calculateWage() 计算当天工钱,传参hours,return hours*hour_wage

1 classEmployee(object):2 hour_wage = 20

3 def __init__(self,name):4 self.name =name5

6 defcalculateWage(self,hours):7 return self.hour_wage*hours8

9 Peter = Employee("Peter")10 print(Peter.calculateWage(5))

Employee

2). 创建class PartTimeEmployee 继承 Employee,成员变量hour_wage=18, parttime_wage=15 构造函数同Employee

类方法calculateWage()重写,若是hour>=8,则 return hour_wage*hours;若是hour<8,return parttime_wage*hours

1 classPartTimeEmployee(Employee):2 hour_wage=18

3 parttime_wage=15

4

5 defcalculateWage(self,hours):6 if hours>=8:7 return self.hour_wage*hours8 else:9 return self.parttime_wage*hours10

11 May = PartTimeEmployee("May")12 print(May.calculateWage(5))13 print(May.calculateWage(8))

PartTimeEmployee

python定义一个triangle类_Python定义一个三角形类Python学习阶段综合练习2,python,triangle,二...相关推荐

  1. 定义一个三角形类(TRI)及其派生类三角柱体类(COL)。其中三角形类可以计算三角形的面积和周长;三角柱体类可以计算柱体的体积和表面积。其具体要求如下: (1)TRI的成员如下:  私有数据成员 

    题目要求: 定义一个三角形类(TRI)及其派生类三角柱体类(COL).其中三角形类可以计算三角形的面积和周长:三角柱体类可以计算柱体的体积和表面积.其具体要求如下: (1)TRI的成员如下: 私有数据 ...

  2. 在python中可以用什么关键字来声明一个类_Python 定义类

    说明 Python 教程正在编写中,欢迎大家加微信 sinbam 提供意见.建议.纠错.催更. 类是面向对象开发的核心思想,可以解决我们现实生活的复杂问题.在了解了类的基本概念,我们来学习一下怎么定义 ...

  3. python定义一个1xn矩阵_Python实现的矩阵类实例

    本文实例讲述了Python实现的矩阵类.分享给大家供大家参考,具体如下: 科学计算离不开矩阵的运算.当然,python已经有非常好的现成的库: 我写这个矩阵类,并不是打算重新造一个轮子,只是作为一个练 ...

  4. python如何创建一个类_python (知识点:类)简单的创建一个类

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ Created on Mon Nov 14 01:01:29 2016 ...

  5. python 类中定义类_Python中的动态类定义

    python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...

  6. python自己做个定时器_python 创建一个自己的类计时器

    前言: 学习了python的类之后收获颇多,于是想利用类创建一个简单的计时器 第一代版本 首先要明确自己的timer想要实现的功能-先列一些简单的吧 比如:开始计时的功能,停止计时的功能,有一些简单的 ...

  7. python 当前路径 搜索路径图某一个不包含_python编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径...

    解决思路 对于像我这种刚开始入门计算机的人,解决问题最关键的是思路的学习,很多时候代码,一看就懂,一写就废. 像这个题目,我们可以用程序的思维,一步一步去解决,将问题细分,细分成你能够解决的问题然后再 ...

  8. python制作qq登录界面_Python制作一个仿QQ办公版的图形登录界面

    最近,QQ的办公版本--TIM进行了一次更新升级.本次更新升级大幅修改了界面的样式,看起来更加的清爽.简洁和高效了. 这种界面州的先生还是比较喜欢的,没有QQ那么花里胡哨,也比微信那些残缺的功能更加丰 ...

  9. python实现火车票查询工具_Python 实现一个火车票查询的工具

    原标题:Python 实现一个火车票查询的工具 作者 sexycoder 本文转载自简书,转载需授权 使用 python 实现一个查询火车票的小工具 主要功能: 输入出发车站,到达车站,时间,然后返回 ...

  10. python中的元类_python中的元类

    类也是对象,但是类有创建对象的能力 动态创建一个类: classmonkey():defbanana(self):print 'banana!' defapple(self):print 'i wan ...

最新文章

  1. 如何生成文件夹目录树文件
  2. pyspark 通过list 构建rdd
  3. win10环境变量设置_win10配置anaconda环境变量
  4. 如何设计订单系统?不妨看看这篇文章
  5. leetcode 67. 二进制求和(C语言)
  6. linux装服务器系统,linux服务器系统安装
  7. SpringBoot+Vue项目上手
  8. hdu 2553 N皇后问题
  9. 【网络存储】存储区域网络SAN
  10. 求某年某月某日是星期几公式
  11. transition天坑
  12. spot卫星介绍与数据下载
  13. 【JavaEE进阶系列 | 从小白到工程师】基本类型包装类的使用,装箱以及拆箱与parseInt方法
  14. Java Swing五子棋
  15. 计算机网络---传输层
  16. HTTP内容的大小写问题
  17. springMVC+阿里云API = 实现发送手机验证码短信
  18. GoLand ide编辑器设置方法注释模板(例如author,date)
  19. 上拉电阻,下拉电阻的实现原理
  20. ITOP4412 RFID RC522模块

热门文章

  1. UE4 VR项目设置总结
  2. 建立简单的VR项目,并且将所需要的资产迁移到新建的VR项目中。
  3. 工作知识记录—TDMA和物理层协议
  4. 浪漫七夕—很幸运一路有你
  5. windows10虚拟机安装苹果系统
  6. SAS逻辑回归之二分类
  7. js网页特效动画(筋斗云案例)
  8. 华为荣耀c4刷入linux系统,华为荣耀畅玩4C移动4G(CHM-TL00 Android 4.4)刷Recovery教程
  9. 百度mip推送工具_(教程)主动推送(实时)、熊掌号天级/周级提交、MIP提交
  10. VirtualXposed框架里点权限管理-XPrivacyLua下载安装失败