zoukankan      html  css  js  c++  java
  • python 类

    一、概述:

      python魔法方法:

        类中被双下划线包围的方法,例如__init__(self, ...)

        魔法方法是面向对象的python的一切  

    1 >>> class R(object):
    2 ...     def __init__(self, x, y):
    3 ...             self.x = x
    4 ...             self.y = y
    5 ...     def get(self):
    6 ...             return (self.x + self.y)
    7 ...     def getA(self):
    8 ...             return self.x * self.y

      在实例化类时,__init__()并不是第一个被调用的函数,第一个被调用的函数是__new__();

    1 >>> class Capstr(str):        #str是不可改变对象
    2 ...     def __new__(cls, string):       #自定义的重写__new__函数
    3 ...             string = string.upper()
    4 ...             return str.__new__(cls, string)
    5 ...     
    6 ... 
    7 >>> a = Capstr("hello")
    8 >>> print a
    9 HELLO

      __del__():相当于c++里面的析构函数;

     1 >>> class C(object):
     2 ...     def __init__(self):
     3 ...             print "__init__ is calling"
     4 ...     def __del__(self):
     5 ...             print "__del__ is calling"
     6 ... 
     7 >>> a = C()
     8 __init__ is calling
     9 >>> b = a
    10 >>> c = a
    11 >>> d = a
    12 >>> del b
    13 >>> del a
    14 >>> del d
    15 >>> del c              #当引用个数为0时候,启用python垃圾回收机制,__del__方法被调用
    16 __del__ is calling

     python内置方法实例:

     1 >>> class New_int(int):
     2 ...     def __add__(self, other):
     3 ...             return int.__sub__(self, other)
     4 ...     def __sub__(self, other):
     5 ...             return int.__add__(self, other)
     6 ... 
     7 >>> a = New_int(3)
     8 >>> b = New_int(5)
     9 >>> a + b
    10 -2

    python内置方法总结:http://www.cnblogs.com/hongfei/p/3858256.html

  • 相关阅读:
    第6章 影响 MySQL Server 性能的相关因素
    第 5 章 MySQL 备份与恢复
    第四章:4.2MySQL 权限系统介绍
    pb中的条件语句,if else,choose case ,for
    UVA
    UVA
    UVA
    UVA
    UVA
    web前端视频收集
  • 原文地址:https://www.cnblogs.com/chris-cp/p/5068511.html
Copyright © 2011-2022 走看看