摘要: 使用__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class: 然后,尝试给实例绑定一个属性: 还可以尝试给实例绑定一个方法: 但是,给一个实例绑定的方法,对另一个实例是不起作用的: 给cl 阅读全文
posted @ 2017-11-21 15:34 TimeTree 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: 如果一个变量指向函数或者类,也可以用type()判断: 但是type()函数返回的是什么类型呢?它返回对应的Class类型。如果我们要在if语句中判断,就需要比较两个变量的type类型是否相同: 阅读全文
posted @ 2017-11-21 12:08 TimeTree 阅读(7106) 评论(0) 推荐(0) 编辑
摘要: 继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 比如,我们已经编写了一个名为Animal的class,有一个run( 阅读全文
posted @ 2017-11-21 11:26 TimeTree 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 数据封装 面向对象编程的一个重要特点就是数据封装。在上面的Student类中,每个实例就拥有各自的name和score这些数据。我们可以通过函数来访问这些数据,比如打印一个学生的成绩: 但是,既然Student实例本身就拥有这些数据,要访问这些数据,就没有必要从外面的函数去访问,可以直接在Stude 阅读全文
posted @ 2017-11-21 10:19 TimeTree 阅读(12917) 评论(0) 推荐(0) 编辑