练习2|学习笔记

简介: 快速学习练习2

开发者学堂课程【Python 入门 2020年版练习2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10411


练习2

 

传入数据类型也可以是元组类型

代码:

import math

class Pointer(objJect):

def _init__(self, x, y):

self.x =x

self.y = y

class Circle(object) :

def _init__(self, cp, radius): # cp = p , radius = 3

self.cp = cp

self.radius = radius

 

def get_area(self):

return self.radius **2 *math. pi

def get_length(self):

return self.radius * 2* math.pi

def relationship(self, point):

distance = (point.x - self.cp.x)** 2+ (point.y - self.cp.y)** 2

if distance > self.radius** 2:

print( "在圆外)

elif distance < self.radius** 2:

print( '在圆内')

else:#等于的情况 

print("在圆上')

p = Pointer(3,4)

c = circle(p,3)

p1 = Pointer ( 10,10)

c.relationship(p1)

image.png

原理为有一个内存,内存里面有数据 p,c,p1,分别将三个数据的地址打印出,代码的实现是 relationship 的 point.x和 point.y 指向,point 指向了内存中的 P1,point1有 x:10、y:10的属性,circle 中有 cp:(3,4)、radius:5的属性,除了练习一的传入书局类型,也可以直接在 c = circle(p,3)的 p 位置直接传入元组(3,4),此时相当于将 cp 给到了一个元组(3,4)。

 

如果在练习一的代码基础上使用元组,需要将 relationship的 point 指向修改成元组类型(distance = (point.x - self.cp[0])** 2 +(point.y - self.cp[1]) ** 2)。

 

也可以把 circle 的 cp 为 x、y 属性,相应传入的时候改为数值输入, point.x 和 point.y 指向分别为 self.x 和 self.y。写代码可以很灵活,掌握思路是最重要的。

相关文章
|
Java 应用服务中间件 数据库
RocketBot 的使用 | 学习笔记
快速学习 RocketBot 的使用
RocketBot 的使用 | 学习笔记
|
Kubernetes 网络协议 程序员
k8s 学习笔记 - LimitRange 限制范围
k8s 学习笔记 - LimitRange 限制范围
232 0
|
NoSQL MongoDB 开发者
故障测试_1|学习笔记
快速学习故障测试_1
故障测试_1|学习笔记
|
开发工具
超详细的vimtutor学习笔记(上)
第一讲 编辑 1.1 移动光标 使用 h、j、k、l 键可以使光标实现左、下、上、右的移动。 也可以使用 ↑ ↓ ← → 进行上下左右的移动。
124 0
|
分布式计算 算法 Hadoop
fuzzyQuery | 学习笔记
快速学习 fuzzyQuery
fuzzyQuery | 学习笔记
|
开发者 Python
__name__的使用 | 学习笔记
快速学习__name__的使用
__name__的使用 | 学习笔记
|
前端开发 Java 网络架构
合法性检查|学习笔记
快速学习合法性检查
178 0
|
存储 编译器 C++
c++学习笔记之类
预处理器封套: #ifndef XXX_H #define XXX_H ... class xxx{ ... } ... #endif 复制代码 如果没有文件包含此头文件,XXX_H被定义并包含这个头文件;如果已经包含,则不再定义和包含。 为了防止多次包含同一个头文件,尤其包含套包含的时候。注意命名要大写和下划线。
120 0
|
Java 开发者
接口标准|学习笔记
快速学习接口标准
103 0
接口标准|学习笔记
|
XML 缓存 安全
回顾| 学习笔记
简介: 快速学习回顾
112 0
下一篇
无影云桌面