pyrex

详解Python中内置的NotImplemented类型的用法

无人久伴 提交于 2020-05-04 11:17:27
它是什么? ? 1 2 >>> type (NotImplemented) < type 'NotImplementedType' > NotImplemented 是Python在内置命名空间中的六个常数之一。其他有 False 、 True 、 None 、Ellipsis 和 __debug__。 和 Ellipsis很像, NotImplemented 能被重新赋值(覆盖)。对它赋值,甚至改变属性名称, 不会产生 SyntaxError。所以它不是一个真正的“真”常数。当然,我们应该永远不改变它。 但是为了完整性: ? 1 2 3 4 5 6 7 8 >>> None = 'hello' ... SyntaxError: can't assign to keyword >>> NotImplemented NotImplemented >>> NotImplemented = 'do not' >>> NotImplemented 'do not' 它有什么用?什么时候用? NotImplemented 是个特殊值,它能被二元特殊方法返回(比如 __eq__() 、 __lt__() 、 __add__() 、 __rsub__() 等),表明某个类型没有像其他类型那样实现这些操作。同样,它或许会被原地处理(in place)的二元特殊方法返回(比如__imul__()、_

python pyrex windows 编译C可执行文件

情到浓时终转凉″ 提交于 2019-12-04 00:24:29
python写成py文件经过处理转化成pyx文件,以及函数说明文件pyi使用pyrexc.py编译成对应模块的c和h文件 然后写一个main的cpp文件,使用cmake产生vs工程,使用incredBuild编译工程。 以下是一个实例: python原脚本,功能是更改目录下hcpp文件的修改时间,本地调试修改时间之后导致代码编译时间戳错乱,故写了一个py脚本 #!/bin/python #coding=gbk import sys,os,time,re def walk_dir(dir): timenow = time.time() ncntnum = 0 for root, dirs, files in os.walk(dir, True): for name in files: filename = os.path.join(root,name) mat = re.search('[.](h|cpp|c|hpp)',filename) if mat: filechgtime = os.path.getmtime(filename) if filechgtime > timenow: os.utime(filename,(timenow,timenow)) print '已修改:',filename ncntnum += 1 print '修改数:',ncntnum if _