我们在使用类的时候经常要自己定义方法,这一节我们就来介绍一下如何自定义方法,关于类中定义的方法,我们可以继续以教室为例,当我们定义了一间教室,这间教室里可以学习语文、数学和英语,那么当一个学生到了这个班级里之后,也就具备了在这个教室学习语文数学和英语的能力,有课外兴趣的也可以根据自己的选择去其他学科的知识,通过这个例子我们来进行这一节的学习。
首先我们需要定义一个类:
class Study: def __init__(self): print('在这个班级必须学习语文') print('在这个班级必须学习数学') print('在这个班级必须学习英语') lihua = Study()#使用Study这个类,然后就可以使用其中的方法
输出结果为:
在这个班级必须学习语文 在这个班级必须学习数学 在这个班级必须学习英语
这是我们关于类的最简使用方式:通过创建一个类,然后在类中创建了几个方法,通过调用类之后直接使用类中的方法。
如果想要添加一个学习其他学科的功能,我们需要在类中先添加一个方法:
def study_others(self,others): print('在这个班级可以学习%s'%others)
然后使用的时候注意参数的传递。
lihua.study_others('历史')
输出结果为:
在这个班级可以学习历史中
下面我们通过例子来进一步了解构造方法和自定义方法的结合。
我们在图书馆借阅书籍的时候一般是通过个人信息来存储我们的借还记录。
看下面的例子:
class Library: def __init__(self,name,id,age): self.name = name self.id = id self.age =age def borrow(self,bookname): self.bookname = bookname print('%s借阅了书籍--%s'%(self.name,self.bookname)) print('借阅者学号为%d,年龄为%s'%(self.id,self.age)) print('借书成功!') xiaoming = Library('小明',1001,20) xiaoming.borrow('Python教程')
输出结果为:
小明借阅了书籍--Python教程 借阅者学号为1001,年龄为20 借书成功!
从上面的例子中我们来分析一下,我们首先在init方法中定义了3个参数,分别为姓名、学号和年龄,因此我们在使用这个类方法的时候,传递了三个实际参数,然后xiaoming就已经调用了这个类。因为init方法是初始构造方法,因此在borrow方法中可以直接使用init中的数据,当xiaoming使用借书方法的时候,调用了构造方法中的信息完成借书操作。
我们再通过一个例子来加深一下对该方法的理解。
书店里有一百本Python学习教程,如果有人买了一本那么该书就少了一本,书店老板会时不时的订购这本书,一次订购十本。
代码如下:
class BookStore: def __init__(self,bookname,bookcount): self.bookname = bookname self.bookcount = bookcount def sell(self): self.bookcount -= 1 print('%s现在有%s本'%(self.bookname,self.bookcount)) def buy(self): self.bookcount += 10 print('%s现在有%s本' % (self.bookname, self.bookcount)) own = BookStore('Python学习教程',100) own.sell() own.sell() own.buy() own.sell()
输出结构为:
Python学习教程现在有99本 Python学习教程现在有98本 Python学习教程现在有108本 Python学习教程现在有107本
在上面的例子中,构造方法中定义了书的名字和书的数量,然后在下面定义了卖书和买书的方法,然后我们使用own调用了BookStore类,然后再通过类中的方法实现卖书和买书的操作。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程