摘要: 1.封装之如何实现属性的隐藏 封装: __x=1 # 把数据属性隐藏 (如何实现隐藏) 类定义阶段 __开头发生了变形 __x --> _A__x特点: 1.在类外部无法直接:obj.__AttrName 2.在类内部是可以直接使用:obj.__AttrName # 为什么会这样?python 如何 阅读全文
posted @ 2018-04-28 18:04 SmallNine 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class: 然后,尝试给实例绑定一个属性: 还可以尝试给实例绑定一个方法: 但是,给一个实例绑定的方法,对另一个实例是不起作用的: 为了给所有实例都绑定方法,可以 阅读全文
posted @ 2018-04-28 15:47 SmallNine 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 由于Python是动态语言,根据类创建的实例可以任意绑定属性。 给实例绑定属性的方法是通过实例变量,或者通过self变量: 但是,如果Student类本身需要绑定一个属性呢?可以直接在class中定义属性,这种属性是类属性,归Student类所有: 当我们定义了一个类属性后,这个属性虽然归类所有,但 阅读全文
posted @ 2018-04-28 14:41 SmallNine 阅读(267) 评论(0) 推荐(0) 编辑
摘要: isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承 阅读全文
posted @ 2018-04-28 13:37 SmallNine 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 继承 比如,我们已经编写了一个名为Animal的class,有一个run()方法 阅读全文
posted @ 2018-04-28 10:28 SmallNine 阅读(175) 评论(0) 推荐(0) 编辑