zoukankan      html  css  js  c++  java
  • [ python ] 类和实例

    1) python支持多继承。 如果两个超类有相同的方法,那么哪个类在前,就使用哪个的方法,另一个类的方法会被屏蔽。

    2) 调查继承。issubclass(subclass,superclass)可以判断subclass是否superclass的子类。

    3) 调查超类。通过subclass.__bases__ 可以得到subclass的超类组成的列表。因为python是支持多继承的,所以超类可能有多个。

    4) 查检对象是否某个类的实例。isinstance(s,subclass)、isinstance(s,superclass)。 注意,instance()方法是可以往上追朔的。如果只能知道某对象属于哪个类(不算超类),可以使用s.__class__属性。另外,type()方法也可以帮助查看对象的类型。

    5) 类变量和实例变量。python中的类变量有点奇怪,如果实例中没有设置同名的实例变量,那么默认其同名实例变量值为类变量的值。但只可读,不可改。如果修改,只会改自己的实例变量,影响不到类变量。

    6) python事实上并不真正支持私有变量。其私有变量是通过在方法名前加双下划线来实现的,虽然无法在实例中直接访问,但事实上python只是将所有以__为前辍的方法将其方法名变成了_类名_方法名的形式,只是个魔法,并非真的让其私有了,通过_类名_方法名还是可以访问到的。另外,__过于强制了,还可以像js一样,通过_这样的“约定”来让人知道它是个私有属性,但其实它还是可以被访问的,只是在from 模块名 import *的时候,带单下划线的方法不会被导入。(这点比js还是强些)

  • 相关阅读:
    架构设计
    OpenRisc-37-OpenRISC的CPU&core的整体架构分析
    QFrame好像是万能的(可以随意画线,或者图片,放在其它元素之间做点缀,还可OnClick)
    QTableWidget的使用和美工总结
    QTableWidget表格合并若干问题及解决方法
    24篇HTTP博客
    利用VS2005进行dump文件调试(17篇博客)
    英语提问方式
    架构和框架的区别
    数据访问组件性能
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426723.html
Copyright © 2011-2022 走看看