Python入门系列——第17篇

类和对象(一)

上次结束的时候,让大家提前去看看面向对象,不知道大家看没看。也许你已经自己去网上找了相关的资料了解了一下面向对象编程(OOP)。我相信大部分人看完以后可能觉得自己什么也没看明白,没关系,其实我也没看明白。明不明白对于现阶段的你我来说并不重要,你现在只需要明白python是怎么做的就行了。好了,由于Python本身的历史原因。我们必须得首先说一下面向对象编程的一些专业术语,才能来介绍类定义。你现在不必明白它们是什么,只需要记住有这些术语。
  • 类:创建自定义的数据类型(就像python本身的int,float,string类型一样)
  • 对象:类的实例叫做对象,变量也被称作对象
  • 继承:一个类可以继承另外一个类,类似与父子关系
  • 组合:一个类的内部可以包含其余类
  • 属性:通常指的是类之中的变量
  • 方法:类内部的函数称之为方法
我们来看代码:
class MyClass:
	pass
这就是最简单的类,它什么都没有,pass语句(pass是python的关键字之一)是空语句,它什么都不做,这样保持了程序逻辑的正确性。
我们可以看到,一个类由关键字class来引导,后面跟着这个类的名字(名字随便你取,你高兴使用什么就用什么。)然后是冒号(:),看到冒号,你就知道下一行就要缩进了。然后下一行是pass语句,这个类什么都没有做。好了,类简单吧,不要怕,我们接着再来看一个稍微复杂点的类。
class MyClass:
	def MyPrint(self):
		print("hello world!")
这个类和上一个类相比,它多了一个我们自定义的函数MyPrint(self)。我们看到这个函数有一个参数self,然而我们并没有使用这个参数,有同学可能要问了,不用那个参数,我们为什么还要写它,以及我们该如何调用这个函数。我先解释一下self这个参数,这个变量其实是类的对象本身。按照惯例,我们选用了self这个名字作为参数,(学过C++的同学可能更喜欢使用this来代替self,不同的是C++没有显式给出this这个参数)。我们来看如何调用这个函数。
obj = MyClass()
obj.MyPrint()
在类定义下面加上这两句,你就可以看见输出了hello world!。
obj = MyClass():这条语句创建了一个MyClass类的实例(对象)obj。记住,这就是创建一个类的实例的方法。
obj.MyPrint():这条语句则是调用了类的MyPrint()函数,注意到,我们并没有传递任何参数进去。这里你可以这样理解:python在这里做了一个转化工作,obj.MyPrint() == MyClass.Myprint(obj)。所以,实际上我们传递了参数。你可以试着用MyClass.MyPrint(obj)语句来替换掉obj.MyPrint()语句。好了,先介绍这么多,你可能需要好好消化一下上面说的,下次见。
posted @ 2017-08-02 17:14  zy010101  阅读(142)  评论(0编辑  收藏  举报