python初级(302) 6 对象(三)
一、复习
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 对象(三)的更多相关文章
- python初级(302) 6 对象(二)
一.复习 1.什么是对象 2.什么是类 3.什么是属性 4.什么是方法 5.创建一个dog类,dog的属性有颜色,方法有汪汪叫 随堂练习: class Dog: def __init__(self, ...
- python初级(302) 6 对象(四)
一.复习 1.什么是多态 2.复习上一节课内容 class Triangle: """ 三角形类 """ def __init__(self ...
- python初级(302) 6 对象(一)
作业: 1.编写一个Dog类,并生成对象dog,属性包含颜色,大小,重量,可以汪汪叫,摇尾巴,跑 # -*- coding: utf-8 -*- class Dog: def __init__(sel ...
- python初级(302) 2 easygui简单使用
一.复习之前的两个练习,巩固计数循环和条件循环 1.系统生成一个随机数1到5,然后让用户的猜测,若猜对了,提示恭喜你,猜对了,否则提示,对不起,你猜错了(提示,1到5的随机数为:secret = ra ...
- python初级(302) 1 环境搭建及简单使用
一.安装anaconda(python环境) 1 地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=A 选择Ana ...
- python初级(302) 5 列表
一.复习 1.函数的创建 1) def关键字 2) 函数名及后面跟随的括号 3)冒号加上函数体 2.函数的调用 函数名及后面跟随的括号 3.带一个,二个,三个参数的函数及调用 二.列表 family ...
- python初级(302) 4 函数
一.函数 1.函数定义: 可以完成某个工作的代码块.这是可以用来构建更大程序的一个小部分. 2.创建或定义函数要使用def关键字 3.创建一个函数 1) def 关键字 2)函数名及后面跟随的括号 3 ...
- python初级(302) 3 easygui简单使用二
一.复习 1.easygui 信息提示对话框 2.easygui 是否对话框 二.easygui其它组件 1.选择对话框:choicebox(msg, title, choices) import e ...
- Python 初级 6 循环 (三)
一.复习 1 计算循环(for循环) for looper in [1, 2, 3, 4, 5]: print("hello") 1) looper的值从第0个数1开始 2) 对应 ...
随机推荐
- ThinkCMF_X1.6.0-X2.2.3框架任意内容包含漏洞的简单分析复现(附自动化验证脚本)
1.漏洞概述 攻击者可利用此漏洞构造恶意的url,向服务器写入任意内容的文件,达到远程代码执行的目的 2.影响版本 ThinkCMF X1.6.0 ThinkCMF X2.1.0 ThinkCMF X ...
- centos服务器上线第二个django项目方法。
阿里云服务器开启端口8001,9001 创建一个虚拟环境 virtualenv -p python3 web2 使虚拟环境生效 source web2/bin/activate 虚拟环境中安装djan ...
- php的选择排序
往前. <?php /** * 选择排序 * 工作原理是每次从待排序的元素中的第一个元素设置为最小值, * 遍历每一个没有排序过的元素,如果元素小于现在的最小值, * 就将这个元素设置成为最小值 ...
- 项目Beta冲刺(团队)--4/7
课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺 团队名称:葫芦娃队 作业目标:进行新一轮的项目冲刺,尽力完成并完善项目 团队博客 队员学号 队员昵称 博客地址 04160242 ...
- 项目Beta冲刺(团队)——05.23(1/7)
项目Beta冲刺(团队)--05.23(1/7) 格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺(团队) 团队名称:为了交项目干杯 作业目标:记录Beta敏捷冲刺第1 ...
- 通过PHP自带的$_SERVER判断 自动识别移动设备
因为站点需要,手机端和PC端分离,所以通过PHP自带的$_SERVER判断 自动识别移动设备 代码如下: <?php $agent = $_SERVER['HTTP_USER_AGENT']; ...
- 装饰器vue-property-decorator
接触到了新的vue项目,使用vue+ts+vue-property-decotator来进行项目的简化,一时间语法没有看懂,所以花时间学习这个装饰器的包. 1.装饰器 @Component(optio ...
- iOS App开发那些事:如何选择合适的人、规范和框架?
http://www.cocoachina.com/ios/20141202/10386.html 自从做Team Leader之后,身上权责发生了变化,于是让我烦恼的不再是具体某个功能,某个界面的实 ...
- moya与网络编程思想:网络请求的生命周期
请求数据管理的集中化: 请求配置的标注化: 请求管理的函数式参量化: 几个端点: target代表应用端的原始数据; endpoint代表应用端到网络端的中间数据,这个数据可以编辑公用数据header ...
- 开发(一) ardunio环境配置 针对esp32-cam 更多例程
第一种 简单版本,针对获取mpu9250数据, http://www.bubuko.com/infodetail-3093785.html 第二种 浮渣版本,针对ESP32获取图像,以及跟多开发例程 ...