我正在向我的gdb添加如here所述的通用GDB漂亮打印机,以下行添加了要使用打印机的类型的地图:
pretty_printers_dict[re.compile ('.*Generic.*')] = GenericPrinter
我需要根据我的类型进行调整:
pretty_printers_dict[re.compile ('MyNamespace1.*')] = GenericPrinter
pretty_printers_dict[re.compile ('MyNamespace2.*')] = GenericPrinter
基本上我喜欢将打印机用于我的所有类型。
但是我在gdb中遇到以下错误:
Python Exception <class 'TypeError'> unorderable types: _sre.SRE_Pattern() < _sre.SRE_Pattern():
Python Exception <class 'TypeError'> unorderable types: _sre.SRE_Pattern() < _sre.SRE_Pattern():
如果我删除任一行,它可以正常工作。我很困惑,
你看到它有什么问题以及如何解决它?
[更新] 我通过组合正则表达式来远离它:
pretty_printers_dict[re.compile ('MyNamespace1.*|MyNamespace2.*')] = GenericPrinter
答案 0 :(得分:0)
此问题仅发生在python 3中:
sorted
函数需要比较两个编译的正则表达式,它们只在python 2中工作(我不知道为什么)。
但我不认为sorted
电话是必要的,所以请不要这样做:
for function in pretty_printers_dict:
if function.match(typename):
return pretty_printers_dict[function](val)
答案 1 :(得分:0)
我通过组合正则表达式来摆脱它:
add_action( 'init', 'unregister_tags' );
function unregister_tags() {
unregister_taxonomy_for_object_type( 'post_tag', 'post' );
}