我是靠谱客的博主 贪玩咖啡豆,最近开发中收集的这篇文章主要介绍python算术运算相关魔法方法_运算符相关的魔术方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

运算符相关的魔术方法实在太多了,j就大概列举下面两类:

1、比较运算符魔术方法说明

__cmp__(self, other)如果该方法返回负数,说明 self < other; 返回正数,说明 self > other; 返回 0 说明 self == other 。强烈不推荐来定义 __cmp__ , 取而代之, 最好分别定义 __lt__, __eq__ 等方法从而实现比较功能。 __cmp__ 在 Python3 中被废弃了。

__eq__(self, other)定义了比较操作符 == 的行为

__ne__(self, other)定义了比较操作符 != 的行为

__lt__(self, other)定义了比较操作符 < 的行为

__gt__(self, other)定义了比较操作符 > 的行为

__le__(self, other)定义了比较操作符 <= 的行为

__ge__(self, other)定义了比较操作符 >= 的行为

来看个简单的例子就能理解了:#!/usr/bin/env python3

# -*- coding: UTF-8 -*-

class Number(object):

def __init__(self, value):

self.value = value

def __eq__(self, other):

print('__eq__')

return self.value == other.value

def __ne__(self, other):

print('__ne__')

return self.value != other.value

def __lt__(self, other):

print('__lt__')

return self.value 

def __gt__(self, other):

print('__gt__')

return self.value > other.value

def __le__(self, other):

print('__le__')

return self.value <= other.value

def __ge__(self, other):

print('__ge__')

return self.value >= other.value

if __name__ == '__main__':

num1 = Number(2)

num2 = Number(3)

print('num1 == num2 ? --------> {} n'.format(num1 == num2))

print('num1 != num2 ? --------> {} n'.format(num1 == num2))

print('num1  {} n'.format(num1 

print('num1 > num2 ? --------> {} n'.format(num1 > num2))

print('num1 <= num2 ? --------> {} n'.format(num1 <= num2))

print('num1 >= num2 ? --------> {} n'.format(num1 >= num2))

输出的结果为:__eq__

num1 == num2 ? --------> False

__eq__

num1 != num2 ? --------> False

__lt__

num1  True

__gt__

num1 > num2 ? --------> False

__le__

num1 <= num2 ? --------> True

__ge__

num1 >= num2 ? --------> False

2、算术运算符魔术方法说明

__add__(self, other)实现了加号运算

__sub__(self, other)实现了减号运算

__mul__(self, other)实现了乘法运算

__floordiv__(self, other)实现了 // 运算符

___div__(self, other)实现了/运算符. 该方法在 Python3 中废弃. 原因是 Python3 中,division 默认就是 true division

__truediv__(self, other)实现了 true division. 只有你声明了 from __future__ import division 该方法才会生效

__mod__(self, other)实现了 % 运算符, 取余运算

__divmod__(self, other)实现了 divmod() 內建函数

__pow__(self, other)实现了 ** 操作. N 次方操作

__lshift__(self, other)实现了位操作 <<

__rshift__(self, other)实现了位操作 >>

__and__(self, other)实现了位操作 &

__or__(self, other)实现了位操作 `

__xor__(self, other)实现了位操作 ^

最后

以上就是贪玩咖啡豆为你收集整理的python算术运算相关魔法方法_运算符相关的魔术方法的全部内容,希望文章能够帮你解决python算术运算相关魔法方法_运算符相关的魔术方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部