zoukankan      html  css  js  c++  java
  • 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()语句。好了,先介绍这么多,你可能需要好好消化一下上面说的,下次见。
  • 相关阅读:
    Bash's Big Day
    树链剖分求lca
    Contest1814
    启发式合并
    2019 Multi-University Training Contest 10
    图论题
    vijos-记数问题
    2018届研究生招生预推免(THU,HIT)经历分享
    数细胞-swust oj
    Bone Collector-HDU
  • 原文地址:https://www.cnblogs.com/zy666/p/10504324.html
Copyright © 2011-2022 走看看