动能:物体由于运动而具有的能量,称为物体的动能。它的大小定义为物体质量与速度平方乘积的二分之一。
前言
从今天开始,我们将继续回到python提升篇了,一直跟进的粉丝朋友们都知道,我们的python系列文章分别是基础篇,提升篇,实战篇,基础篇系列只在引导大家入门学习,了解python的基础知识,提升篇则是对python的更进一步学习,包括具体的实例,具体的包的运用,实战篇将会实现具体的项目。可大可小,因此,实战篇文章是不定期更新,而且尽可能不设置结局,只要是涉及到python的实战文章,有可能的话,我们都将一直分享,无终止分享,毕竟学习一门语言不是全部,实战和运用才是最终目的。一起来看看今天的内容吧!
一、python面向对象
python在最开始设计的时候既是一门脚本语言,也是一门面向对象的语言,与C++/JAVA等面向对象语言类似,他们的面向对象机制都是类似的,换句话说,他们包含的内容,使用方式都是差不多的,几乎一模一样,他们都有着,类,数据成员,方法,重写。实例化等等。
开讲之前,我们先来分析一下类出现的背景,换句话说为什么要有类,它的好处是什么?还记得我们之前分享的python文章吗?当中函数 def()这东西用的最多,当然,他很好用也没得说,但是,如果到了一个项目的时候,我们函数用单独函数的思想去考虑问题,就会造成维护的困难和分散困难,你想想,你的函数这一个,那一个,明明相同属性的函数可以放在一起管理等等问题,因为函数我们都是不太严格的去定义后使用,后期出现问题是要去仔细查找才行,也就是没有一个统一的管理机制,造成了我们的业务困难和维护不便,考虑到除此以外和各种其他不利于项目顺利开展等问题,面向对象和类也就诞生了!
1.1 类的创建
python创建类的结构体:
class ClassName:
类实体(包含类的数据,方法等等)
1.2 实例创建
# -*- coding:utf-8 -*-
class Student:
#创建一个学生类,下面的都是类的实体(身体)
#该类一共包含了两个方法成员,一个初始化函数(构造函数)
def __init__(self, name, number):
self.name = name
self.number = number
def get_data(self):
print("姓名:{} 学号:{}".format(self.name,self.number))
def welcome(self):
print("IT进阶之旅,伴您随行!")
# 类的实例化(可以理解类的调用),此处实例化后
# Stu就代表了Student类的全部内容,可以调用方法或者数据
# 这里传入了两个参数,也就是name, number
Stu = Student('世外居士','IT_001')
# 此处是调用类的一个方法(函数)
Stu.get_data()
Stu.welcome()
1.3 代码解读
从以上代码我们可以看到,一个类里面可以包含很多变量和函数,因此一个类就可以将多个分散的函数和变量囊括在一起进行统一的管理和后期维护,而且使用也很方便,另外一点,我们的代码上档次,变得"有气质了"(笑哭,不存在的,哈哈),不再像从前那样散兵游将了,而是有了自己的组织,举个例子,我们代码实例是创建了一个学生类,学生类就会包含,姓名,学号,性别,成绩,考核等等,按照以前的思路都是分散写函数,现在都写到一块了,以后那个模块出现问题,我们就能很快分析出是学生类出了问题,而不是其他类出问题了,你们说是吧。
具体到我们定义的学生类,和写单独的函数一样,包括了输入参数(形参),如果你注意看到,我们有一个 def __init__()函数,它里面总的来说就是两个参数,一个是self,自带类本身,必须加,但是外部实例化的时候不用作为输入参数输入,第二个为类本身需要的参数,当然,这个参数就可能是多个了,我们这里是name, number,def __init__()是面向对象函数里面的构造函数(初始化参数),有何用意?1.类参数的初始化,简单点就是给类里面的变量实现赋予一个数,防止后期无参数报错的情况等等,2.作为外部输入参数的统一接口,也就是说外部输入的参数都会存放在这里,然后供给类里面的各种方法(函数)使用,但是为什么出现了self.name = name 这一句呢,不是参数传进来就可以使用了吗?(单独函数的思想),正是因为类的特别,外边传进来的参数都必须用self.xxx接收,简单的说,虽然你外部是传进来参数了,但是我不知道咋个接收,于是,类就说,你们必须先传给我们自己的变量,才能用,因此name的值首先赋给self.name,类本身的name变量才可以使用,因此后面的函数使用传入参数时,都是self.xx(我们这里是self.name,self.number), 类中定义函数的时候,输入参数也必须加上self。
在类得到调用也很简单,这里调用官方话叫实例化,就是将类用一个实例具体化的意思,比如:代码中的Stu = Student('世外居士','IT_001'),这里已经将类中需要的参数进行了传入,因此Stu就代表了类的全部,通过的可以访问类的全部内容,于是我们可以用一个点(.)来访问类的方法(函数),例如代码中的:Stu.get_data()就调用了原始类中的get_data函数,非常简单。
END
结语
今天的分享到此结束了,主要讲解了类的定义和使用,特别仔细的分析了类的由来和使用细则,包括类的使用注意事项等等,我们都进行了一定的讲解,期待大家熟练今天的内容,面向对象其实比较抽象,大家可以暂时理解性记忆,到后面才会更加开阔,跟着我们的教程走就对了,我们尽量用通读的话语阐述python面向对象的前世今生,感谢支持,一起加油!
编辑:玥怡居士|审核:小圈圈居士