一、复习

1、什么是魔法方法?

2、什么是类的初始化函数?

二、什么是self

使用一个类可以创建多个对象实例,例如:

ball1 = Ball(“red”, “small”, “down”)

ball2 = Ball(“red”, “medium”, “up”)

调用其中一个实例的方法时,像这样:ball1.bounce()

方法必须知道是哪个实例调用它, self参数会告诉方法哪个对象调用它。这称为实例引用。

调用方法时,ball1.bounce()的括号里没有参数,这是Python处理对象的一个魔法,调用一个类方法时,我们用哪一个实例调用,那个对象就会将实例引用自动传递给方法。

前面的调用也可以写成Ball.bounce(ball1)

小知识:所有类名一般采用大写字母开头的单词组合:Ball, HotDog

三、多态

多态:同一个方法,不同的行为

Triangle类和Square类都有一个名为get_area()的方法。所以分别有两个类的实例,如下:

class Triangle:
"""
三角形类
"""
def __init__(self, width, height):
self.width = width
self.height = height def get_area(self):
area = self.width * self.height / 2.0
return area class Square:
"""
正方形类
"""
def __init__(self, size):
self.size = size def get_area(self):
area = self.size * self.size
return area

先创建它们的实例:

my_triangle = Triangle(4, 5) 

my_square = Square(7)

就可以使用get_area()分别计算它们的面积:

my_triangle.get_area() 

my_square.get_area()

每个形状都使用了方法名get_area(),  不过每个形状中这个方法做的工作不同,这就是一个多态的例子。

:相同的方法名,不同的工作(实现)。

四、作业:

1、将课堂完成的三角形类和正方形类写在一个文件shap.py中, 然后分别创建各自对象,完成面积的计算。

2、根据正方形类,生成10个不同的正方形对象,分别计算出边长为1到10的正方形面积

python初级(302) 6 对象(三)的更多相关文章

  1. python初级(302) 6 对象(二)

    一.复习 1.什么是对象 2.什么是类 3.什么是属性 4.什么是方法 5.创建一个dog类,dog的属性有颜色,方法有汪汪叫 随堂练习: class Dog: def __init__(self, ...

  2. python初级(302) 6 对象(四)

    一.复习 1.什么是多态 2.复习上一节课内容 class Triangle: """ 三角形类 """ def __init__(self ...

  3. python初级(302) 6 对象(一)

    作业: 1.编写一个Dog类,并生成对象dog,属性包含颜色,大小,重量,可以汪汪叫,摇尾巴,跑 # -*- coding: utf-8 -*- class Dog: def __init__(sel ...

  4. python初级(302) 2 easygui简单使用

    一.复习之前的两个练习,巩固计数循环和条件循环 1.系统生成一个随机数1到5,然后让用户的猜测,若猜对了,提示恭喜你,猜对了,否则提示,对不起,你猜错了(提示,1到5的随机数为:secret = ra ...

  5. python初级(302) 1 环境搭建及简单使用

    一.安装anaconda(python环境) 1 地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=A 选择Ana ...

  6. python初级(302) 5 列表

    一.复习 1.函数的创建 1) def关键字 2) 函数名及后面跟随的括号 3)冒号加上函数体 2.函数的调用 函数名及后面跟随的括号 3.带一个,二个,三个参数的函数及调用 二.列表 family ...

  7. python初级(302) 4 函数

    一.函数 1.函数定义: 可以完成某个工作的代码块.这是可以用来构建更大程序的一个小部分. 2.创建或定义函数要使用def关键字 3.创建一个函数 1) def 关键字 2)函数名及后面跟随的括号 3 ...

  8. python初级(302) 3 easygui简单使用二

    一.复习 1.easygui 信息提示对话框 2.easygui 是否对话框 二.easygui其它组件 1.选择对话框:choicebox(msg, title, choices) import e ...

  9. Python 初级 6 循环 (三)

    一.复习 1 计算循环(for循环) for looper in [1, 2, 3, 4, 5]: print("hello") 1) looper的值从第0个数1开始 2) 对应 ...

随机推荐

  1. PAT甲级1013题解——并查集+路径压缩

    题目分析: 本题初步浏览题目就知道是并查集的模板题,数据输入范围N为1~1000,则M的范围为0~1000^2,通过结构体记录每一对连线的关系,p[]数组记录每个节点的跟,对于k次查询,每次都要重新维 ...

  2. 《团队名称》第八次团队作业:Alpha冲刺day3

    项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8-软件测试与ALPHA冲刺 团队名称 快活帮 作业学习目标 (1)掌握 ...

  3. nodejs中判断请求来自PC端还是移动端

    获取req.headers["user-agent"]: var deviceAgent = req.headers["user-agent"].toLower ...

  4. cmds jdbc连接写法

    格式一:  Oracle JDBC Thin using a ServiceName: jdbc:oracle:thin:@//<host>:<port>/<servic ...

  5. 总结TestNg与JUnit的异同

    工作中一直用的是junit,近期稍微学习了一下TestNg,发现TestNg比java强大太多. TestNg简介 TestNg也是一套测试框架,它的灵感来源于Junit(java的单元测试框架)和N ...

  6. LeetCode 752. Open the Lock

    原题链接在这里:https://leetcode.com/problems/open-the-lock/ 题目: You have a lock in front of you with 4 circ ...

  7. codeforces B. A and B 找规律

    Educational Codeforces Round 78 (Rated for Div. 2) 1278B - 6 B. A and B  time limit per test 1 secon ...

  8. ubuntu中使用 alien安装rpm包

    我们可以使用alien 在ubuntu中安装rpm 包 使用方法: 安装 alien 安装   apt-get update apt-get install alien 帮助命令 Usage: ali ...

  9. Spring Could Stream 基本用法

    Spring Cloud Stream是一个建立在Spring Boot和Spring Integration之上的框架,有助于创建事件驱动或消息驱动的微服务. 通过它可以更方便的访问消息服务,如消费 ...

  10. linux命令之------touch命令

    touch命令 1)    作用:用于修改文件或目录的时间属性,包括存取时间和更改时间.若文件不存在,系统会建立一个新的文件. 2)    -a:改变档案的读取时间记录: 3)    -m:改变档案的 ...