Python基础---类

简介: 【10月更文挑战第10天】Python类的定义

1、格式:

class 子类名(父类名1,父类名2,...):
   """docstring for this class"""          #类的文档字符串
   def __init__(self[, arg1, arg2, ...]):  #构造函数
       #constructor block;
   def __del__(self):                      #析构函数
       #destructor block;
   def functionName(self[, ......]):       #自定义函数
       '''docstring for this function'''   #函数的文档字符串
       #code block;
   ......

2、self:
每 个对象都有一个名为self的内置属性,它指向当前对象本身,类似于C++和Java中的this指针,在声明类的成员函数时,函数的参数列表中最左边的 第一个参数就是self,但是在调用时,成员函数的实参不能使用self,这个内置的属性成员由Python的解释器系统使用,自动为对象填充;
3、构造函数:
Python类的构造函数名为__init__,且"init"前后都是双下划线;该函数在创建对象时自动被调用;类似于C++中类的构造函数;
4、析构函数:
Python类的构造函数名为__del__,且"del"前后都是双下划线;该函数在销毁对象时自动被调用;类似于C++中类的析构函数;若想要指明该函数被调用,就要使用del语句来销毁对象;
5、特殊标识符:
以单下划线开头的标识符:代表不能直接访问的类属性,需要通过类提供的接口进行访问,也不能通过语句"from xxx import *"来导入;例如:_foo;
以双下划线开头的标识符:表示该标识符是类的私有成员;例如:__foo;
以双下划线开头和结尾的标识符:表示该标识符是类里特殊方法的专用标识;例如:__init__()是类的构造函数;
二、特殊属性
1、__doc__:
该属性可分别用于类和成员函数中;用于类中时,可以保存类的文档字符串;用于函数时,可以保存函数的文档字符串;
2、__class__:
用于存放当前对象实例所属的类名;
三、特殊方法
Python类中,除了构造函数__init__和析构函数__del__之外,还有下面的一些待实现的特殊方法:
1、基本方法:
__new__(className[,*targs,**kwargs]):静态方法,用于创建类className的实例;它在__init__之前被调用;通常用在设置不变数据类型的子类;
__str__(self):当前对象被字符串化时被调用;内建函数str(self)函数,或print(self)的调用;
__repr__(self):运行时的字符串输出;内建函数repr(self)或操作符"self"的调用;
__unicode__(self):Unicode字符串输出;内建函数unicode(self)的被调用;
__len__(self):求出当前对象的长度;内建函数len(self)的调用;
__call__(self,*args):把当前对象当成函数调用,表示可调用的实例;
__nonzero__(self):为当前对象实例定义False值;内建函数bool(self)的调用;
__bool__(self):当前对象的真值测试;内建函数bool(self)的调用;
__dir__(self):列出当前对象的多有属性和方法;内建函数dir(self)的调用;
__format__(self,format_spec):格式化字符串的输出;
2、关系运算符重载:
__cmp__(src,dst):两个对象进行比较;内建函数cmp(src,dst)的调用;
__lt__(self,other):判断对象self是否小于对象other;重载运算符"<"或"lt";
__le__(self,other):判断对象self是否小于等于对象other;重载运算符"<="或"le";
__gt__(self,other):判断对象self是否大于对象other;重载运算符">"或"gt";
__ge__(self,other):判断对象self是否大于等于对象other;重载运算符">="或"ge";
__eq__(self,other):判断对象self是否等于对象other;重载运算符"=="或"eq";
__ne__(self,other):判断对象self是否不等于对象other;重载运算符"!="或"ne";
3、属性操作:
__getattr__(self,attr):获取属性attr;内建函数self.getattr(attr)的调用,仅当属性没找到时才被调用;
__setattr__(self,attr,val):设置属性attr;内建函数self.setattr(self,attr,val)的调用;
__delattr__(self,attr):删除属性attr;内建函数self.delattr(attr)时被调用;
__getattribute__(self,attr):获取属性attr;内建函数self.getattr(attr)的调用,它总是被调用;
__get__(self,attr):获取属性描述符;
__set__(self,attr):设置属性描述符;
__delete__(self,attr):删除属性描述符;
4、算数运算符重载:
__add__(self,obj):加法运算self+obj;
__sub__(self,obj):减法运算self-obj;
__mul__(self,obj):乘法运算self*obj;
__div__(self,obj):除法运算self/obj;
__truediv__(self,obj):True除;除法运算self/obj;
__floordiv__(self,obj):Floor除;除法运算self//obj;
__mod__(self,obj):取模/取余;模运算self%obj;
__divmod__(self,obj):除和取模;内建divmod();
__pow__(self,obj[,mod]):取模/取余;内建pow();幂运算符"**";
__radd__(self,obj):加法运算self+obj;
__rsub__(self,obj):减法运算self-obj;
__rmul__(self,obj):乘法运算self*obj;
__rdiv__(self,obj):除法运算self/obj;
__rtruediv__(self,obj):True除;除法运算self/obj;
__rfloordiv__(self,obj):Floor除;除法运算self//obj;
__rmod__(self,obj):取模/取余;模运算self%obj;
__rdivmod__(self,obj):除和取模;内建divmod();
__rpow__(self,obj[,mod]):取模/取余;内建pow();幂运算符"**";
__iadd__(self,obj):加法运算self+=obj;
__isub__(self,obj):减法运算self-=obj;
__imul__(self,obj):乘法运算self*=obj;
__idiv__(self,obj):除法运算self/=obj;
__itruediv__(self,obj):True除;除法运算self/=obj;
__ifloordiv__(self,obj):Floor除;除法运算self//=obj;
__imod__(self,obj):取模/取余;模运算self%=obj;
__ipow__(self,obj[,mod]):取模/取余;内建pow();幂运算符"**";

相关文章
|
1月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
16 1
|
1月前
|
设计模式 开发者 Python
Python类里引用其他类
Python类里引用其他类
|
1月前
|
设计模式 开发者 Python
Python 类中引用其他类的实现详解
Python 类中引用其他类的实现详解
33 1
|
1月前
|
JSON 缓存 API
在 Python 中使用公共类处理接口请求的响应结果
在 Python 中使用公共类处理接口请求的响应结果
28 1
|
1月前
|
机器人 关系型数据库 Python
【Python篇】Python 类和对象:详细讲解(下篇)
【Python篇】Pyt hon 类和对象:详细讲解(下篇)
23 2
|
1月前
|
算法 Python
【Python篇】Python 类和对象:详细讲解(中篇)
【Python篇】Python 类和对象:详细讲解(中篇)
24 2
|
1月前
|
存储 C++ Python
【Python篇】Python 类和对象:详细讲解(上篇)
【Python篇】Python 类和对象:详细讲解(上篇)
30 2
|
2月前
|
前端开发 Python
Python编程的面向对象有哪些(二)
Python编程的面向对象(二)—类的多态
|
2月前
|
IDE Java 开发工具
Python类与面向对象
Python类与面向对象
|
2月前
|
关系型数据库 MySQL Python
mysql之python客户端封装类
mysql之python客户端封装类