Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中对MatchObject进行子类化?_Python - Fatal编程技术网

如何在Python中对MatchObject进行子类化?

如何在Python中对MatchObject进行子类化?,python,Python,我一直在玩正则表达式,并试图对从re.search返回的MatchObject进行子类化 我没有机会访问MatchObject类 我假设在此输入代码,该对象的实际类型不是“匹配对象”: 重新搜索(“a”、“a”) 但是,我无法访问此对象: import _sre dir (_sre) ['CODESIZE', 'MAGIC', '__doc__', '__name__', '__package__', 'compile', 'copyright', 'getcodesize', 'getlo

我一直在玩正则表达式,并试图对从re.search返回的MatchObject进行子类化

我没有机会访问MatchObject类

我假设在此输入代码,该对象的实际类型不是“匹配对象”:

重新搜索(“a”、“a”) 但是,我无法访问此对象:

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