python基础(二)抽象

1 函数与模块

编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种!”

  • 函数
    为了减少代码中重复出现的冗余代码,通常我们选择创建函数来供代码重复调用。
    使用 def 关键字来定义函数,函数与变量一样也需有固定名称,执行完毕后通过 return 关键字来返回一个值,函数的参数可通过(*kwds)与(**kwds)指定。
  • 模块
    当退出python编译器时,所有的函数与变量将丢失,为了支持这一点,Python有一种方法可以将函数定义放在一个文件中,并在脚本或解释器的交互式实例中使用它们。这样的文件叫做模块;模块中的定义可以导入到其他模块或主模块中。

2 类和对象

简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。
定义类

class Student(object):

    # __init__是一个特殊方法用于在创建对象时进行初始化操作
    # 通过这个方法我们可以为学生对象绑定name和age两个属性
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def study(self, course_name):
        print('%s正在学习%s.' % (self.name, course_name))

    # PEP 8要求标识符的名字用全小写多个单词用下划线连接
    # 但是部分程序员和公司更倾向于使用驼峰命名法(驼峰标识)
    def watch_movie(self):
        if self.age < 18:
            print('%s只能观看《熊出没》.' % self.name)
        else:
            print('%s正在观看岛国爱情大电影.' % self.name)

创建和使用对象

def main():
    # 创建学生对象并指定姓名和年龄
    stu1 = Student('骆昊', 38)
    # 给对象发study消息
    stu1.study('Python程序设计')
    # 给对象发watch_av消息
    stu1.watch_movie()
    stu2 = Student('王大锤', 15)
    stu2.study('思想品德')
    stu2.watch_movie()


if __name__ == '__main__':
    main()

3 抽象

  • 封装:隐藏一切可以隐藏的实现细节,只向外界暴露(提供)简单的编程接口
  • 继承:定义一个类时,可以从现有类继承,新的类称为子类,被继承的类称为超类或基类
  • 多态:调用实例方法时不检查类型,只要方法存在,参数正确,就可以调用。

posted on 2019-07-22 14:28  MiloLi  阅读(204)  评论(0编辑  收藏  举报

导航