Python3面向对象—点和矩形类
Python类练习
定义一个类
class Point:
'''二维坐标系中代表一个点'''
pass
print('打印Point:{}'.format(Point))
p1 = Point()
print('Point实例化为一个p1:{}'.format(p1))
打印Point:<class '__main__.Point'>
Point实例化为一个p1:<__main__.Point object at 0x0000029C80C8D630>
我们直接打印Point结果为<class '__main__.Point'>,即Point的全名为__main__.Point
给实例p1添加属性
p1.x = 3.0
p1.y = 4.0
print('(%g, %g)' % (p1.x, p1.y))
(3, 4)
import math
distance02p1 = math.sqrt((p1.x - 0)**2 + (p1.y - 0)**2)
print('原点(0, 0)与p1之间的距离:{}'.format(distance02p1))
原点(0, 0)与p1之间的距离:5.0
def print_point(p):
print('(%g, %g)' % (p.x, p.y))
print_point(p1)
(3, 4)
定义矩形
class Rectangle:
'''代表一个矩形,矩阵属性有长度height、宽度width、角点corner'''
pass
r1 = Rectangle()
r1.width = 200.0
r1.height = 400.0
r1.corner = Point()
r1.corner.x = 0
r1.corner.y = 0
实例化一个例子r1
r1--->Rectangle---width
------------------height
------------------corner--->Point---x, y
# 定义一个矩形中心函数
def center_rect(r):
p = Point()
p.x = r.corner.x + r.width/2.0
p.y = r.corner.y + r.height/2.0
return p
center = center_rect(r1)
print_point(center)
(100, 200)
r1.width = r1.width + 50
r1.height = r1.height + 100
print('打印矩形的宽度width:{}'.format(r1.width))
print('打印矩形的长度height:{}'.format(r1.height))
打印矩形的宽度width:250.0
打印矩形的长度height:500.0
# 定义矩形宽度和高度变化的函数
def change_rect(rect, dwidth, dheight):
rect.width += dwidth
rect.height += dheight
change_rect(r1, 50, 100)
print('打印矩形的宽度width:{}'.format(r1.width))
print('打印矩形的长度height:{}'.format(r1.height))
打印矩形的宽度width:300.0
打印矩形的长度height:600.0
# def move_rect(rect, dx, dy):
# p = center_rect(rect)
# p.x += dx
# p.y += dy
# return p
# 结果: (155, 305)
# 定义一个矩形移动函数
def move_rect(rect, dx, dy):
p = Point()
p.x = rect.corner.x + dx
p.y = rect.corner.y + dy
return p
print_point(move_rect(r1, 5, 5))
(5, 5)
Python3面向对象—点和矩形类的更多相关文章
- python022 Python3 面向对象
Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...
- [.net 面向对象编程基础] (9) 类和类的实例
[.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...
- [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)
[.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...
- YTU 2602: 熟悉题型——类设计( 矩形类定义【C++】)
2602: 熟悉题型--类设计( 矩形类定义[C++]) 时间限制: 1 Sec 内存限制: 128 MB 提交: 183 解决: 119 题目描述 定义一个矩形类,数据成员包括左下角和右上角坐标 ...
- 矩形类定义【C++】
Description 定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数.输入坐标的函数,以及计算并输出矩形面积的函数.要求使用提示中给出的测试函数并不得改动. Inp ...
- python 面向对象进阶之元类metaclass
一:知识储备 exec exec:三个参数 参数一:字符串形式的命令 参数二:全局作用域(字典形式),如果不指定,默认为globals() 参数三:局部作用域(字典形式),如果不指定,默认为local ...
- Lua面向对象之二:类继承
1.类继承 ①代码 Sharp = { } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self --②,self ...
- js面向对象设计之class类
class 相对 function 是后出来的,既然 class 出来了,显然是为了解决 function 在处理面向对象设计中的缺陷而来.下面通过对比,来看看 class 作为 ES6 中的重大升级 ...
- js面向对象设计之function类
本文仅探讨如何合理的使用 function 在 javascript中实现一个面向对象设计的类.总所周知,javascript 并不能实现一个真正意义上的类,比如 protect 比如 函数重载.下面 ...
随机推荐
- ubuntu不能联网的问题
控制面板\网络和 Internet\网络和共享中心-->更改>配器设置-->以太网-->右键属性-->共享-->允许其他网络用户通过此计算机的internet连接来 ...
- xshell连接ubuntu系统
1.登录虚拟机 2.关闭本机所有防火墙和杀毒软件 sudo ufw status 查看防火墙状态 sudo ufw disable 关闭防火墙 sudo ufw enable 打开防火墙 3.安装ss ...
- 分布式监控系统开发【day38】:主机存活检测程序解析(七)
一.目录结构 二.入口 1.文件MonitorServer.py import os import sys if __name__ == "__main__": os.enviro ...
- [Luogu P1516]青蛙的约会
按照题意,显然可以列出同余方程,k即为所求天数,再将其化为不定方程 ,那么对这个方程用扩展欧几里德算法即可得出k,q的一组解,但是方程有解的充要条件是(m – n) 和L不同时为零并且x – y是m ...
- Class.forname和ClassLoader.loadClass的源码分析
最近在研读<深入理解java虚拟机:JVM高继特性与最佳实践>第二版, 今天想起来很久前,写数据库连接,使用Class.forName,当时没有深究,所以便简单的看了下源码,顺便做了以下记 ...
- 2.6 if嵌套
if嵌套 通过学习if的基本用法,已经知道了 当需要满足条件去做事情的这种情况需要使用if 当满足条件时做事情A,不满足条件做事情B的这种情况使用if-else 想一想: 坐火车或者地铁的实际情况是: ...
- C# 执行oracle sql 语句出现中文不兼容的问题
最近我用C#调用 操作oracle 数据库 出现了一个问题就是 我的查询语中的条件语句 含有中文 字符在C#中查询不了 ,但是在pl sql 中能够正常的查询出来. 这个原因是 C# 执行orccl ...
- input(type="checkbox"|type="radio")+jquery使用
1.用.is(":checked")判断input是否为选中状态 例: var value=$(this).is(":checked"); localStora ...
- HT for Web框架使用心得
一.简单介绍 在HT for Web的官网首页写着,构建先进2D和3D可视化所需要的一切. 是的,只要你看过官网,你就会知道,这是一个企业的.并非开源的且需要收费的框架. 因为公司的业务需要,且公司使 ...
- C#学习笔记-DataTable导出到EXCEL(一)
public void DataTabletoExcel(DataTable dt, string path) { StreamWriter sw = new StreamWriter(path, f ...