回顾一下类和对象以及继承关系

# coding:utf-8

import traceback

class A(object):
    __static_field = ‘A_private static field‘
    public_static_field = ‘A_public_static_field‘
    start_urls = "A_class_start_urls"
    _one_line = "A_one_line"

    def __init__(self):
        (filename, line_number, function_name, text) = traceback.extract_stack()[-2]
        self.name = text[:text.find(‘=‘)].strip()
        self.start_urls = "object_start_urls"
        if not hasattr(self, "_one_line"):  # 类属性中有,也算类实例有
            self._one_line = ‘123‘

    def __str__(self):
        return self.name

    def A_comm_func(self):
        return "A_comm_func"

    @classmethod
    def A_classmethod(cls):
        return "A_classmethod"

    @staticmethod
    def A_staticmethod():
        return "A_staticmethod"

    def repeat(self):
        return "A_repeat"

    def ree(self):
        return self.__re()

    def __re(self):
        return "A__re"

class B(A):
    B_public_field = "B_public_field"
    __B_pri_field = ‘B_pri_field‘
    _B_one_line = ‘B_one_line‘
    public_static_field = "B_public_static_field"
    _one_line = "B_one_line"

    def repeat(self):
        return "B_repeat"

    def B_comm_func(self):
        return "B_comm_func"

    @classmethod
    def B_classmethod(cls):
        return "B_classmethod"

    @staticmethod
    def B_staticmethod():
        return ‘B_staticmethod‘

a = A()
b = B()

print "--------------A.dict-----------"
print A.__dict__
print "--------------B.dict-----------"
print B.__dict__

print "------------  a.__dict__  -----------"
print a.__dict__
print "---------   b.dict  -----------"
print b.__dict__

# print b.A_classmethod()
print B.A_classmethod()
print A._one_line
print a._one_line
print b._one_line  # 先从自己__dict__找,在去类找,再到类的父类找
print B._one_line  # 先从自己找,再去父类找
b._one_line = ‘luanqibazao‘
print b._one_line

  

时间: 2024-12-03 06:35:13

回顾一下类和对象以及继承关系的相关文章

javascript中的对象之间继承关系

相信每个学习过其他语言的同学再去学习JavaScript时就会感觉到诸多的不适应,这真是一个颠覆我们以前的编程思想的一门语言,先不要说它的各种数据类型以及表达式的不同了,最让我们头疼,恐怕就是面向对象的部分了,在JavaScript中,是没有给定一个创建对象的关键词的,它不像Java中一个class就可以创建一个对象,在JavaScript中,对象是一个十分松散的的key-value对的组合,通常,我们在创建对象时,可以通过{}来直接生成一个对象,就像我们之前所学的,对象中有属性,有行为,这里我

QObject提供了QMetaObject元类信息(相当于RTTI和反射),信号与连接,父子关系,调试信息,属性,事件,继承关系,窗口类型,线程属性,时间器,对象名称,国际化

元类信息(相当于RTTI和反射),信号与连接,父子关系,调试信息,属性,事件,继承关系,窗口类型,线程属性,时间器,对象名称,国际化其中元类又提供了:classInfo,className,构造函数,多重祖先元类,method, property, Enumerator, Signal, Slot等等 http://doc.qt.io/qt-5/qobject.html http://doc.qt.io/qt-5/qmetaobject.html 我感觉Qt的出现,除了提供GUI以外,主要就是提

对象关系分析(非继承关系)

现实环境存在各种对象关系,可以使用特殊的关系类型描述词来形容这些关系. 例如: 1. 方形是属于形状的一种,可以用"is-a"来描述方形与形状的关系. 2. 汽车都有方向盘,可以用"has-a"来描述汽车与方向盘的关系. 3. 程序员使用键盘编辑代码,可以用"uses-a"来描述程序员与键盘的关系. 4. 花朵依赖蜜蜂传播花粉,可以使用"depends-on"来描述花朵与蜜蜂的关系. 5. 学生是一个班级的成员,可以使用&qu

AS3显示对象继承关系图(转)

要学好AS3,先得把继承关系搞清楚.下面就是AS3的继承关系 DisplayObject InteractiveObject              Bitmap Shape    Video     AVMIMovie    StaticText   MorpShape DisplayObjectContainer     SimpleButton    TextField Sprite                                Stage                

验证当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。

结果:当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行.

是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时

这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常.在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”.很多时候,我们会... Coda 发布于 2015-04-12 14:09 评论(1)阅读(72) 1 http://www.djob.com/job_8EED14ACE3DE31D0.htmlhttp://www.

javascript中的对象继承关系(2)

在上一章中,我们着重介绍了JavaScript中类之间的原型继承关系:原型继承对于继承类中的方法来说是很方便的.那么我们今天就来看一下继承中的类继承以及类继承和原型继承的混用,所谓类继承,就是使用call或者apply方法来进行冒充继承: 1 function Desk(size,height){ 2 this.size=size; 3 this.height=height; 4 } 5 function MJDesk(size,height){ 6 Desk.call(this,size,he

JavaSE复习日记 : 继承关系和super关键字

/* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复用; * 类的实例化复用,类直接的复用; * 类的继承复用; * 前两个我都有发过,这里就说一下类的继承,以及继承中用的较多的关键字:super; * * * 首先要先了解什么是继承? * 继承,用人认知的角度说的话就好比一个父亲的东西由他的几个儿子来继承,也就是有了父亲的东西,同时也有自己的东西-

面向对象中多个对象之间的关系

http://www.cnblogs.com/wing011203/archive/2012/06/23/2559223.html 当谈到面向对象的设计时,我们经常说面向对象是符合人们对现实世界的思维模式,即人们采用针对非程序设计领域存在的复杂问题的解决方式,来解决软件设计过程中各种错综复杂的关系.利用面向对象设计,特别是采用各种设计模式来解决问题时,会设计多个类,然后创建多个对象,这些对象,有些主要是数据模型,有些则是行为描述占主体.一个设计良好的类,应该是兼顾信息和行为,并且是高内聚.而不同