如何在Python中对MatchObject进行子类化?
我一直在玩正则表达式,并试图对从re.search返回的MatchObject进行子类化 我没有机会访问MatchObject类 我假设在此输入代码,该对象的实际类型不是“匹配对象”: 重新搜索(“a”、“a”) 但是,我无法访问此对象:如何在Python中对MatchObject进行子类化?,python,Python,我一直在玩正则表达式,并试图对从re.search返回的MatchObject进行子类化 我没有机会访问MatchObject类 我假设在此输入代码,该对象的实际类型不是“匹配对象”: 重新搜索(“a”、“a”) 但是,我无法访问此对象: import _sre dir (_sre) ['CODESIZE', 'MAGIC', '__doc__', '__name__', '__package__', 'compile', 'copyright', 'getcodesize', 'getlo
import _sre
dir (_sre)
['CODESIZE', 'MAGIC', '__doc__', '__name__', '__package__', 'compile', 'copyright', 'getcodesize', 'getlower']
>>> dir(_sre.SRE_Match)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'SRE_Match'
import\u sre
董事
['CODESIZE'、'MAGIC'、'uuuuu doc'、'uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
>>>目录(_sre.sre_Match)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“模块”对象没有属性“SRE\u匹配”
我错过了什么?这不会发生:)
>>重新导入
>>>mo=重新搜索(“a”、“a”)
>>>mo_类=类型(mo)
>>>莫乌班
>>>类子类(mo\U类):
... 通过
...
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:调用元类基时出错
类型“\u sre.sre\u Match”不是可接受的基类型
值得注意的是,您始终可以通过调用
type(obj)
来访问对象的类型。可以通过\u sre.\u sre\u Match
访问该类。别问我为什么。发生了什么事?它是如何实施的?为什么文档在类名问题上对我们撒谎?懒惰到rtfs:-)
import _sre
dir (_sre)
['CODESIZE', 'MAGIC', '__doc__', '__name__', '__package__', 'compile', 'copyright', 'getcodesize', 'getlower']
>>> dir(_sre.SRE_Match)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'SRE_Match'
>>> import re
>>> mo = re.search ("a", "a")
>>> mo_class = type(mo)
>>> mo_class
<type '_sre.SRE_Match'>
>>> class SubClass(mo_class):
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Error when calling the metaclass bases
type '_sre.SRE_Match' is not an acceptable base type