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

  • 相关阅读:
    swift NSComparator
    Java mac 上编写Java代码
    四舍五入、上取整、下取整
    数组排序
    删除xcode 里的多余证书
    启动画面 设置
    CGFloat Float 互转
    navigationController pop的几种方法
    iOS 获取键盘相关信息
    eclipse代码格式化
  • 原文地址:https://www.cnblogs.com/Rubick7/p/6483999.html
Copyright © 2011-2022 走看看