1.2.5 面向对象

Python支持面向对象编程(Object-Oriented Programming,简称OOP),在Python中实现OOP的关键就是类和对象。这里简单介绍一些相关的基础知识,以便大家对面向对象有基本的认识。

面向对象使得我们可以通过抽象的方法来简化程序,其一大优点就是代码复用(在多态继承上的应用尤为突出)。来看下面一段代码。

    class Person:
        has_hair = True
        def __init__(self, name, age):
          self.name = name
          self.age = age
      def sayhello(self, words):
          print("Hello, I'm", self.name)
          print(words)

  if __name__ == '__main__':
      Sally = Person('Sally', 20)
      Sally.sayhello("Nice to meet you")

      Tom = Person('Tom', 19)
      Tom.sayhello("Nice to meet you too")

运行输出如下。

    Hello, I'm Sally
    Nice to meet you
    Hello, I'm Tom
    Nice to meet you too

这里通过class关键字定义了一个名为Person的类,其中Person称为类名。在类的内部,定义了一个变量has_hair,称为类属性;定义的两个函数称为类方法。下面通过给Person传入必须的参数得到两个实例Sally、Tom,这个过程称为实例化。

注意这里的self代表实例。第一个函数是在实例被创建的时候自动执行的,它给实例增添了name和age属性,这些属性只有实例本身才有,称为实例属性。

最后通过实例调用了sayhello方法,打印了问候语。作为拓展,在后面第3章数据清洗中还会介绍面向对象的文件操作。当然这些都是很基础的应用,进一步的学习需要大家自行探索。