天天看点

乐高python编程入门——类及其属性和方法

作者:积木玩家疯叔

“ 类是面向对象语言的程序设计中的概念,是面向对象编程的基础。类的实质是一种引用数据类型,类似于 byte、short、int(char)、long、float、double 等基本数据类型,不同的是它是一种复杂的数据类型。因为它的本质是数据类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。(来自“百度百科”)”

乐高python编程入门——类及其属性和方法

在学习类之前我们先来熟悉一下面向过程和面向对象。

01

面向对象和面向对象

面向过程与面向对象是两种编程风格、思想;

  1. 面向过程是基于流程的,将所要处理的事情细分到一个个小的步骤,然后按照顺序依次执行,每一个步骤都可以采用一个函数来实现,这个思路比较符合我们现实中处理事情的方式;
  2. 缺点就是前后事务关联性较大,后期维护成本高;
  3. 优点是效率高,结构清晰
  4. 面向过程是一种基础的思维方法

与面向过程强调流程和步骤不同的是,面向对象更关注对象,也就是“谁”做什么事情,将要做的处理的事情分解到不同的对象,不同的对象通过方法来处理其所要负责的部分

  1. 面向对象的基础是对象,对象是类的实例化,类是对象的抽象化;
  2. 类,顾名思义就是分类,将现实生活具有相同特征的事物进行抽象化,比如越野车、小轿车、商务车都可以归为车这一类;
  3. 在python中,类也是一种数据类型,只不过是一种复杂的数据类型;

02

类包含属性和方法,属性描述类的特性,方法描述类的行为。

比如上面例子中的类:车

属性有:长、宽、高、功率

方法有:启动,停止、前进、转弯

我们用

class ClassName:
    code           

来定义类,用

def methodName():
    code           

来创建类的方法。

我们来创建一个类:

import math


class myCircle():
    def __init__ (self,a=0,b=0,c=0):
        self.x=a
        self.y=b
        self.r=c
    
    def getCircleArea(self):
        return self.r**2*math.pi
    
    def getDistenceFromO(self):
        return math.sqrt(self.x**2+self.y**2)


    def getX(self):
        return self.x
    
    def getY(self):
        return self.y
    
    def getR(self):
        return self.r           

这个类是用来描述一个圆,有属性x,y和r,分别代表圆心的坐标和圆的半径,有方法getX(),getY(),getR(),getCircleArea()以及getDistenceFromO()

用来获取圆的三个属性以及计算圆的面积和圆心到原点的距离。

创建好类之后,我们来运用类。

a=myCircle(3,4,5)
print(a.getX())
print(a.getY())
print(a.getR())


print(a.getDistenceFromO())
print(a.getCircleArea())

           

上面的a是类myCircle实例化的一个对象,然后来调用a的方法,我们看结果:

乐高python编程入门——类及其属性和方法

03

SPIKE中的类

在乐高的编程中,我们的集线器hub,以及所有的传感器和硬件在python中其实都是被封装好的类,我们直接调用就可以,这就是在SPIKE中进入python编程页面上面默认的几行代码的含义;

乐高python编程入门——类及其属性和方法

我们无须知道这些类具体是如何定义编写的,我们只需要掌握如何运用这些类以及其中的方法就行,具体的可以参考SPIKE中的知识库:

乐高python编程入门——类及其属性和方法