Python Infix Operators for Python
infix的Python项目详细描述
==
中缀
=
…图片::http://img.shields.io/pypi/v/infix.svg
:目标:https://pypi.python.org/pypi/infix/
:alt:最新的pypi版本
…图像::https://travis ci.org/borntyping/python infix.svg
:target:https://travis ci.org/borntyping/python infix
:alt:travis build status
允许函数用作中缀函数的装饰符。
infix运算符就是这样创建和应用的,并且不要停止函数的正常调用:
>;>from infix import shift\u infix as infix
…
>;>gt;@中缀
…定义加(a,b):
…返回a+b
…
>;>print(40<;>plus>;>2)
42
>;>print(plus(5,5))
10
@还有中缀
…定义在(a,b)之前:
…返回a<;b
…
>;>;打印(1&u在&;5之前)
真值
>;@或中缀
…定义减(a,b):
…返回a-b
…
>;>print(1减2)
-1
>;@xor_infix
…定义直到(开始,停止):
…返回范围(开始,停止)
…
>;>print(list(1^到^10))
[1,2,3,4,5,6,7,8,9]
>;@pow_u infix
…定义功率(A,B):
…返回a**b
…
>;>print(3**pow**2)
9
>;>dpow=div庘infix(pow)
>;>print(3/dpow/2)
9
custom syntax
----
>;@make_infix('mod','pow','rshift')
…定义直到(开始,停止):
…返回列表(范围(开始,停止))
>;>;打印(1%到%3)
[1,2]
>;>;打印(2<;<;直到>;>;4)
[2,3]
>;>;打印(5**到**8)
[5,6,7]
>;>;打印(直到(10,12))
[10,11]
versionadded::1.2
仍支持旧的"自定义中缀"。它有两个参数,即左运算符函数和右运算符函数的名称,尽管只有第一个参数很重要:
>;@custom_infix(''uu rmod_uu',''uu mod_u')
…定义(a,b):
…return(a==7,b==9)
…
>;>print(7%ate%9)
true
>;>print(6%ate%7)
false
右边的函数应该是"left operand<;http://docs.python.org/2/reference/datamodel.html"对象。`.
您应该小心避免使用函数将采用的对象可能提供的操作数(因为只有在前一个对象不提供该操作数的情况下才调用初始右操作数)。
binding
----
用于在进程中途生成临时对象的功能。这意味着现在一半的表达式可以工作:
>;>;3**pow
<;pow-lbind:waiting for right side>;
。versionadded::1.2
示例:使用python中的in-curring函数。您可以很容易地定义一个
curry函数:
>;>from functools import partial
>;>curry=或_infix(partial)
>;>def volume(x,y,z):
…返回x*y*z
>;>;tot=volume curry 2 curry 3 curry 4
要运行测试,请运行"python infix.py"-或者,使用"tox"在所有兼容的python版本上运行测试。
…_ doctest:http://docs.python.org/3/library/doctest.html
。_ TOX:http://testrun.org/tox/
在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或出售软件副本的权利,并允许向其提供软件的人员这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或大部分中。
本软件按"原样"提供,无任何形式的明示或默示保证,包括但不限于适销性保证,适合某一特定目的和非侵犯性。在任何情况下,无论是在合同、侵权或其他诉讼中,作者或版权所有人都不对任何索赔、损害赔偿或其他责任负责,这些索赔、损害赔偿或其他责任是由软件或软件的使用或其他交易引起的、由软件引起的或与之相关的。
中缀
=
…图片::http://img.shields.io/pypi/v/infix.svg
:目标:https://pypi.python.org/pypi/infix/
:alt:最新的pypi版本
…图像::https://travis ci.org/borntyping/python infix.svg
:target:https://travis ci.org/borntyping/python infix
:alt:travis build status
允许函数用作中缀函数的装饰符。
infix运算符就是这样创建和应用的,并且不要停止函数的正常调用:
>;>from infix import shift\u infix as infix
…
>;>gt;@中缀
…定义加(a,b):
…返回a+b
…
>;>print(40<;>plus>;>2)
42
>;>print(plus(5,5))
10
@还有中缀
…定义在(a,b)之前:
…返回a<;b
…
>;>;打印(1&u在&;5之前)
真值
>;@或中缀
…定义减(a,b):
…返回a-b
…
>;>print(1减2)
-1
>;@xor_infix
…定义直到(开始,停止):
…返回范围(开始,停止)
…
>;>print(list(1^到^10))
[1,2,3,4,5,6,7,8,9]
>;@pow_u infix
…定义功率(A,B):
…返回a**b
…
>;>print(3**pow**2)
9
>;>dpow=div庘infix(pow)
>;>print(3/dpow/2)
9
custom syntax
----
>;@make_infix('mod','pow','rshift')
…定义直到(开始,停止):
…返回列表(范围(开始,停止))
>;>;打印(1%到%3)
[1,2]
>;>;打印(2<;<;直到>;>;4)
[2,3]
>;>;打印(5**到**8)
[5,6,7]
>;>;打印(直到(10,12))
[10,11]
versionadded::1.2
仍支持旧的"自定义中缀"。它有两个参数,即左运算符函数和右运算符函数的名称,尽管只有第一个参数很重要:
>;@custom_infix(''uu rmod_uu',''uu mod_u')
…定义(a,b):
…return(a==7,b==9)
…
>;>print(7%ate%9)
true
>;>print(6%ate%7)
false
右边的函数应该是"left operand<;http://docs.python.org/2/reference/datamodel.html"对象。`.
您应该小心避免使用函数将采用的对象可能提供的操作数(因为只有在前一个对象不提供该操作数的情况下才调用初始右操作数)。
binding
----
用于在进程中途生成临时对象的功能。这意味着现在一半的表达式可以工作:
>;>;3**pow
<;pow-lbind:waiting for right side>;
。versionadded::1.2
示例:使用python中的in-curring函数。您可以很容易地定义一个
curry函数:
>;>from functools import partial
>;>curry=或_infix(partial)
>;>def volume(x,y,z):
…返回x*y*z
>;>;tot=volume curry 2 curry 3 curry 4
要运行测试,请运行"python infix.py"-或者,使用"tox"在所有兼容的python版本上运行测试。
…_ doctest:http://docs.python.org/3/library/doctest.html
。_ TOX:http://testrun.org/tox/
在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或出售软件副本的权利,并允许向其提供软件的人员这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或大部分中。
本软件按"原样"提供,无任何形式的明示或默示保证,包括但不限于适销性保证,适合某一特定目的和非侵犯性。在任何情况下,无论是在合同、侵权或其他诉讼中,作者或版权所有人都不对任何索赔、损害赔偿或其他责任负责,这些索赔、损害赔偿或其他责任是由软件或软件的使用或其他交易引起的、由软件引起的或与之相关的。