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

  • 相关阅读:
    PostgreSQL pg_hba.conf 文件简析
    Centos 查看端口占用情况
    Nginx 从0开始学
    windows 杀死端口号对应进程
    MyBatis基础-05-缓存
    MyBatis基础-04-动态sql
    MyBatis基础-02
    SpringMVC基础-14-SpringMVC与Spring整合
    SpringMVC基础-13-SpringMVC运行流程
    SpringMVC基础-12-异常处理
  • 原文地址:https://www.cnblogs.com/Rubick7/p/6483999.html
Copyright © 2011-2022 走看看