一、复习

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. 了解python-FAQ

    python FAQ 参考: https://docs.python.org/zh-cn/3.7/faq/design.html#why-are-python-strings-immutable wh ...

  2. 关于Tfrecord

    写入Tfrecord print("convert data into tfrecord:train\n") out_file_train = "/home/huadon ...

  3. Codeforces A. Kyoya and Colored Balls(分步组合)

    题目描述: Kyoya and Colored Balls time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  4. Spring Cloud Stream 知识点

    发布-订阅模式 在Spring Cloud Stream中的消息通信方式遵循了发布-订阅模式,当一条消息被投递到消息中间件之后,它会通过共享的Topic主题进行广播,消息消费者在订阅的主题中收到它并触 ...

  5. IE浏览器兼容性问题输出

    1.时间函数 var startTime=new Date(a); var endTime=new Date(b); 如果a,b的时间格式是:“2017-08-01,需要将格式转换成“2017/08/ ...

  6. react native iOS真机调试-联网问题与js严格模式

    rn:strict mode does not allow function declarations in a lexically nested statement https://blog.csd ...

  7. 金融类openapi

    股市URL解析 http://money.finance.sina.com.cn/moneyflow/?stockName=上证指数&symbol=sh000001&stockSymb ...

  8. Docker报错“Dockerfile parse error line 1: FROM requires either one or three arguments”

    看官方文档Format: 以 '#' 开头一行被视为评论,出现在其他位置视为参数. 也就不难理解报错原因:将写在同一行的注释视为参数了. 原Dockerfile: 改为:

  9. count to any

    A small computer game, puzzle, decryption

  10. 通过patch 方式解决cube.js 集成cratedb 的问题

    今天有写过一个简单的cube.js 集成cratedb 的说明,主要是在driver 上的兼容问题,处理方法是删除不兼容的代码 实际上我们也可以通过类似linux c 开发中的patch 方式解决,简 ...