1
我搜索代码,其中FloorDiv甚至股利,ADD,SUB等的定义,但我没有定义,就像我想要的。Python其中是编译器/解析器中FloorDivide的定义/源代码?
在Python/ast.c:
case DOUBLESLASH:
return FloorDiv;
case '/':
if (STR(n)[1] == '/')
return FloorDiv;
else
return Div;
在Python/compile.c:
case BINARY_FLOOR_DIVIDE:
case BINARY_TRUE_DIVIDE:
return -1;
case INPLACE_FLOOR_DIVIDE:
case INPLACE_TRUE_DIVIDE:
return -1;
在分析器/ Python.asdl:
operator = Add | Sub | Mult | MatMult | Div | Mod | Pow | LShift
| RShift | BitOr | BitXor | BitAnd | FloorDiv
语法/语法:
arith_expr: term (('+'|'-') term)*
term: factor (('*'|'@'|'/'|'%'|'//') factor)*
http://eli.thegreenplace.net/2010/06/30/python-internals-adding-a-new-statement-to-python/帮我找论文的地方,但不是我想要的。
谢谢!这是完美的答案! –
只是另一个小问题,其中Cpython连接字符串 –
看起来像Objects/unicodeobject.c(PyUnicode_Append)和Python/ceval.c(unicode_concatenate)的组合。无论出于什么原因(可能是性能),unicode类型都没有定义'__add__'或'__iadd__',但是这些都是在ceval中明确处理的。 –