0 0

关于object基类的问题5

class Singleton(object):
    def __new__(cls, *args, **kw):
        if not hasattr(cls, '_instance'):
            orig = super(Singleton, cls)
            cls._instance = orig.__new__(cls, *args, **kw) 
        return cls._instance 
       
class MyClass(Singleton): 
    a = 1
    # def __init__(self):
        # self.a = 1
   
if __name__ == "__main__":
    one = MyClass()
    two = MyClass()
     
    print id(one) 
    print id(two) 

class Singleton:
    def __new__(cls, *args, **kw):
        if not hasattr(cls, '_instance'):
            orig = super(Singleton, cls)
            cls._instance = orig.__new__(cls, *args, **kw) 
        return cls._instance 
       
class MyClass(Singleton): 
    a = 1
    # def __init__(self):
        # self.a = 1
   
if __name__ == "__main__":
    one = MyClass()
    two = MyClass()
   
    print id(one) 
    print id(two) 

两段代码就是Singleton有些不同, 但是运行的结果不过, 第一段one two指向同一内存,第二段不是
求解?
2012年6月27日 18:35
目前还没有答案

相关推荐

    C#基础知识 基类Object

    6. **关于Object的其他特性**: - `MemberwiseClone()`: 创建当前对象的一个浅复制。对于复杂的数据结构,可能需要深复制来确保所有引用类型的副本。 - `ReferenceEquals()`: 检查两个对象是否是相同的实例,即...

    Object源码探索

    个人保存,源码截图和笔记

    C#基类整理C#比较全的基类集合

    1. **System.Object**:所有C#类的终极基类,任何自定义类都隐式继承自System.Object。Object类提供了基本的方法,如`ToString()`、`Equals()`和`GetHashCode()`,用于对象的表示、比较和哈希计算。 2. **System....

    实现内存半自动释放的基类Object

    内存管理是C++最令人痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的性能,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在。难道使用C++就不能像使用C#或...

    基类,派生类

    在面向对象编程(Object-Oriented Programming, OOP)中,基类与派生类是两个核心概念。基类(Base Class)也被称为父类或超类,它定义了一组通用的方法和属性,为其他类提供了共享行为的基础。派生类(Derived ...

    C#帮助类、各种基类等

    C#中的`System.Object`是所有类的最终基类,包含了一些基本的方法,如`ToString()`、`Equals()`和`GetHashCode()`。在实际开发中,我们可能需要创建自定义的基类来满足特定需求,比如定义一套通用的业务逻辑或数据...

    数据库操作基类

    数据库操作基类是编程中一个重要的设计模式,它通常用于封装数据库访问的通用逻辑,提供一个统一的接口供其他类使用。这样的设计可以提高代码的可重用性、可维护性和可扩展性,同时降低耦合度。在这个基类中,我们...

    C#基类库大全(最全面的)

    1. **System命名空间**:这是C#中最基础的命名空间,包含了许多基本类型,如int、string、object等,以及控制流程语句(如Exception、Console类)。 2. **System.Collections与System.Collections.Generic**:这两...

    C#多态性实例,向基类构造函数传递参数.rar

    这个实例"向基类构造函数传递参数"将深入探讨如何在派生类中调用基类的构造函数,并传递参数以实现更灵活的代码设计。以下是对这个主题的详细讲解: 首先,让我们理解什么是多态性。多态性(Polymorphism)是指一个...

    PB基类开发

    3. `p_object.pbl`: "p_object"可能是通用对象的集合,这些对象可以是数据访问层的抽象,如数据窗口对象,或者是自定义的业务对象,用于封装特定的业务逻辑或数据处理。 4. `p_window.pbl`: 窗口是PowerBuilder应用...

    用c++ 定义一个车(Vehicle)基类,有Run,Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)

    - 虚基类是多继承中的概念,当一个类从多个基类继承,而这些基类又共同从另一个类继承时,可以避免重复继承的问题。 - 使用关键字 `virtual` 来声明虚基类。 5. **主函数**: - 主函数用于测试类的功能。 - ...

    ios中解析json对象基类

    在iOS开发中,JSON(JavaScript Object Notation)是一种常见的数据交换格式,用于在服务器和客户端之间传输数据。本文将深入探讨如何在Objective-C中解析JSON对象,并基于标题和描述,我们将关注一个基类`...

    C#_基类库大全2012-12-09 注苏飞的代码库

    1. **System**命名空间:这是C#中最基础的命名空间,包含了基本类型如int、string,以及Object类,它是所有其他类的基类。 2. **System.Collections**:提供各种集合类,如ArrayList、LinkedList、Dictionary等,...

    C#基类库大全

    1. **系统类库**:这是BCL的基础,包括`System`命名空间,提供了如`Object`(所有类的基类)、`String`、`Array`、`Exception`等基本类型和异常处理。`System.IO`提供了对输入输出流的支持,如`FileStream`、`...

    C# ADO.NET数据库操作基类(不好用你拿砖头拍)

    public static object ExecuteScalar(string connectionString, string sql) { using (SqlConnection conn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(sql, conn); conn.Open()...

    DataBinding在RecyclerView中的应用以及基类的设计

    为了解决这个问题,我们可以引入DataBinding库,它能帮助我们更优雅地处理视图和数据的绑定。本文将探讨如何在RecyclerView中应用DataBinding,并设计一个基类来简化这一过程。 首先,DataBinding是Android官方提供...

    C# 基类 aspx net 常用类

    首先,C#基类是指C#中的一些基本类型和类,如System.Object是最基础的类,所有自定义类都继承自它。System.String代表字符串,提供了丰富的操作方法。此外,System.IO提供文件和流操作,System.Collections.Generic...

    浅析C# 中object sender与EventArgs e

    - **`EventArgs`类**:这是所有事件数据类的基类,用于封装事件的相关信息。它是一个空类,但其派生类通常会包含具体事件的数据成员。 - **`EventHandler`委托**:这是一个预定义的委托类型,用于处理事件。它的签名...

    《Inside the C++ Object Model》笔记(1~7章)

    总的来说,《Inside the C++ Object Model》这本书不仅是一本关于C++底层原理的技术指南,也是一本帮助程序员深入理解C++语言精髓的宝贵资源。通过对这些章节的学习,读者可以更好地掌握C++对象模型的核心机制,从而...

Global site tag (gtag.js) - Google Analytics