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) 对应 ...
随机推荐
- Linux(Redhat)传送门汇总
Linux(Redhat)传送门汇总 linux 环境布置 常用命令与shell 常用命令 shell 环境布置 Linux虚拟机安装(rhel 7.4) 虚拟机网络设置 VMware虚拟机开机启动 ...
- RIG exploit kit:恶意活动分析报告——像大多数exploit kit一样,RIG会用被黑的网站和恶意广告进行流量分发
RIG exploit kit:恶意活动分析报告 from:https://www.freebuf.com/articles/web/110835.html 在过去的几周里,我们曾撰文讨论过Neutr ...
- @Transactional(rollbackFor)
@Transactional注解有两个,一个是spring提供的@org.springframework.transaction.annotation.Transactional 另一个是jdk提供@ ...
- *Bootstrap系列 - (1)概述
参考 [1] v3.bootcss.com
- 去除WordPress分类描述P标签
我们知道栏目页调用栏目描述直接用<?php echo category_description(); ?>就ok了,但是使用上面的代码调用Wordpress分类描述,会自动出现P标签,如& ...
- python 二、八、十六进制之间的快速转换
一.进制转换 1.2 十进制转二进制 bin(18)--> '0b10010' 去掉0b就是10010 即为十进制18转二进制是10010 十进制转八进制oct(18) --> ...
- xpath用发
xpath的更多语法: https://docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-2.0/ms256039(v=vs ...
- day003-python初识
基本的写代码流程:1.创建 xxx.py文件 注意:文件不要保存在中文的路径下,和文件名不要以中文命名. 2.写代码 a.注意两行文件头 #! /usr/bin/env python # -*- c ...
- 论文画图工具使用(2)vision软件
1 软件安装和破解 https://www.cnblogs.com/shitou6/p/8986396.html 自己的网盘 链接:https://pan.baidu.com/s/1EWU0xLMTI ...
- Bzoj 4517: [Sdoi2016]排列计数(排列组合)
4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MB Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ...