zoukankan      html  css  js  c++  java
  • Python 中新式类的内置方法

      Python中分为经典类和新式类,新式类是在Python2.2以后才有的新特性,其直接可看到的区别就是定义方式不同,新式类是直接继承至object类或者其他类而成的,而经典类就是直接定义的。

      在新式类中有一些特殊的方法实现所有对象的默认行为:

      1, __init__ 和 __new__:

        这两个方法都是用来创建object的子类对象的,__new__是一个静态方法,用于创建类的实例,然后再使用__init__来初始化实例.PS:__metaclass__是创建类时起作用的方法,所以,在新式类中的调用: __metaclass__, __new__, __init__。我们可以在这些方法里显示的定义一些操作来达到自己想要的功能。

      2, __delattr__, __getattribute__, __setattr__方法:

        这几个方法是在对属性进行操作时使用的方法,从字面上可以看出是对属性进行删除,获得,设置操作时调用的方法

      3, __repl__, __str__:

        这两个方法是用于定义一个类的可打印对象的。当使用了print的时候就会调用这个里面的字符串。

      

      在这里课外延伸一下,使用__new__方法来实现一个单例模式:

      class Singlton(object):

        def __new__(cls, *arg, **kwarg):

          if hasattr(cls, "_instance")

            cls._instance = super(Singlton, cls).__new__(cls, *arg, **kwarg)

          return cls._instance

        class A(Singlton):

         a = 1

  • 相关阅读:
    OAF 开发,给组件添加javascript事件
    SQL SERVER占用CPU过高优化
    Winform嵌入CEF(非正常用法)
    多线程——i++的坑
    20150819(i++与++i的思考)
    listView中,checkBox的显示和隐藏
    装箱和拆箱
    虚方法
    [转]关于struct的一些解释与class对比
    提取行政区边界经纬度坐标(高德+百度)
  • 原文地址:https://www.cnblogs.com/Rubick7/p/6483999.html
Copyright © 2011-2022 走看看