设为首页 加入收藏

TOP

Python中的特殊属性与方法(一)
2019-01-11 14:08:36 】 浏览:117
Tags:Python 特殊 属性 方法
模块的特殊属性
__doc__ 模块的说明文档
__all__ 指明模块希望被使用的属性、类和方法
__file__ 模块所在路径

 

类的特殊属性
__slots__ 限制类的实例允许添加的属性,是一个tuple元组

 

类的特殊方法
__new__(cls[, ...])

1. __new__ 是在一个对象实例化的时候所调用的第一个方法
2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __init__ 方法
3. __new__ 决定是否要使用该 __init__ 方法,因为 __new__ 可以调用其他类的构造方法或者直接返回别的实例对象来作为本类的实例,如果 __new__ 没有返回实例对象,则 __init__ 不会被调用
4. __new__ 主要是用于继承一个不可变的类型比如一个 tuple 或者 string

__init__(self[, ...]) 构造器,当一个实例被创建的时候调用的初始化方法
__del__(self) 析构器,当一个实例被销毁的时候调用的方法
__call__(self[, args...]) 允许一个类的实例像函数一样被调用:x(a, b) 调用 x.__call__(a, b)
__len__(self) 定义当被 len() 调用时的行为
__repr__(self) 定义当被 repr() 调用时的行为,是为调试服务的。当被 print() 时调用
__str__(self) 定义当被 str() 调用时的行为
__bytes__(self) 定义当被 bytes() 调用

钡男形
__hash__(self) 定义当被 hash() 调用时的行为
__bool__(self) 定义当被 bool() 调用时的行为,应该返回 True 或 False
__format__(self, format_spec) 定义当被 format() 调用时的行为
属性相关
__getattr__(self, name)  定义当用户试图获取一个不存在的属性时的行为 
__getattribute__(self, name)  定义当该类的属性被访问时的行为 
__setattr__(self, name, value) 定义当一个属性被设置时的行为 
__delattr__(self, name)  定义当一个属性被删除时的行为 
__dir__(self)  定义当 dir() 被调用时的行为 
__get__(self, instance, owner)  定义当描述符的值被取得时的行为 
__set__(self, instance, value)  定义当描述符的值被改变时的行为 
__delete__(self, instance)  定义当描述符的值被删除时的行为 
比较操作符
 __lt__(self, other) 定义小于号的行为:x < y 调用 x.__lt__(y) 
__le__(self, other)  定义小于等于号的行为:x <= y 调用 x.__le__(y) 
__eq__(self, other)  定义等于号的行为:x == y 调用 x.__eq__(y) 
__ne__(self, other)  定义不等号的行为:x != y 调用 x.__ne__(y) 
__gt__(self, other)  定义大于号的行为:x > y 调用 x.__gt__(y) 
__ge__(self, other)  定义大于等于号的行为:x >= y 调用 x.__ge__(y) 
  算数运算符
__add__(self, other)  定义加法的行为:+
__sub__(self, other)  定义减法的行为:- 
__mul__(self, other)  定义乘法的行为:* 
__truediv__(self, other)   定义真除法的行为:/
__floordiv__(self, other) 定义整数除法的行为://
__mod__(self, other) 定义取模算法的行为:%
__divmod__(self, other) 定义当被 divmod() 调用时的行为
__pow__(self, other[, modulo]) 定义当被 power() 调用或 ** 运算时的行为
__lshift__(self, other) 定义按位左移位的行为:<<
__rshift__(self, other) 定义按位右移位的行为:>>
__and__(self, other) 定义按位与操作的行为:&
__xor__(self, other) 定义按位异或操作的行为:^
__or__(self, other) 定义按位或操作的行为:|
反运算
__radd__(self, other) 与算数运算符相同,当左操作数不支持相应的操作时被调用
__rsub__(self, other) 与算数运算符相同,当左操作数不支持相应的操作时被调用
__rmul__(self, other) 与算数运算符相同,当左操作数不支持相应的操作时被调用
__rtruediv__(self, other) 与算数运算符相同,当左操作数不支持相应的操作时被调用
__rfloordiv__(self, other) 与算数运算符相同,当左操作数不支持相应的操作时被调用
__rmod__(self, other)  与算数运算符相同,当左操作数不支持相应的操作时被调用 
__rdivmod__(self, other)  与算数运算符相同,当左操作数不支持相应的操作时被调用 
__rpow__(self, other)  与算数运算符相同,当左操作数不支持相应的操作时被调用 
__rlshift__(self, other)  与算数运算符相同,当左操作数不支持相应的操作时被调用 
__rrshift__(self, other)  与算数运算符相同,当左操作数不支持相应的操作时被调用 
__rand__(self, other)  与算数运算符相同,当左操作数不支持相应的操作时被调用 
__rxor__(self, other)  与算数运算符相同,当左操作数不支持相应的操作时被调用 
__ror__(self, other)  与算数运算符相同,当左操作数不支持相应的操作时被调用 
增量赋值运算
_
编程开发网
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇爬虫入门的基本原理,如果你连这.. 下一篇Python 语法笔记

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }