一般而言,符号^
是__xor__
或__rxor__
方法的infix版本。无论数据类型放置在符号的左侧还是右侧,都必须以兼容的方式实现此功能。对于整数,这是常见的XOR
操作,但例如没有为float
类型的功能与int
类型内置的定义:
In [12]: 3^4
Out[12]: 7
In [13]: 3.3^4
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-858cc886783d> in <module>()
----> 1 3.3^4
TypeError: unsupported operand type(s) for ^: 'float' and 'int'
关于Python的一个妙处是,你可以覆盖这个行为在你自己的一类中。例如,在某些语言中,符号意味着取幂。你可以做的是这样,就像一个例子:对于Foo
仅实例
class Foo(float):
def __xor__(self, other):
return self ** other
那么这样的事情会的工作,而现在,的^
符号将意味着幂。
In [16]: x = Foo(3)
In [17]: x
Out[17]: 3.0
In [18]: x^4
Out[18]: 81.0
来源
2013-10-18 13:37:07
ely
对于整数,它确实C.^_- – 2010-03-16 00:52:41
仅供参考,从Python外壳,您可以用'帮助同样的事情( '^')' – seth 2010-03-16 01:00:40
-1:这是完全覆盖了Python文档中和包含的帮助功能。在这里提出这个问题很愚蠢。 – 2010-03-16 01:44:48