如何访问一个对象,只知道它的内存地址而不知道引用它的变量?

2021-08-02 16:09:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图调试一个脚本,有一个正则表达式,我想检查。(regex作为另一个脚本的参数传递到我的程序中,所以我不能手动查找regex。)在调试过程中,我注意到有问题的regex被加载到内存中,所以我看到类似这样的情况

<_sre.SRE_Pattern object at 0x000000000DB6E5D0>

我想访问regex对象,这样我就可以确切地看到它在做什么,但我似乎找不到一种方法来访问python中的内存。有人知道怎么做吗?你知道吗

2条回答
网友
1楼 ·

看起来您正试图直接打印regex对象,如下所示:

>>> import re
>>> p = re.compile('my regex')
>>> print p
_sre.SRE_Pattern object at 0x02274380

您可以简单地将模式称为p.pattern

>>> p.pattern
'my regex'

文件:https://docs.python.org/2/library/re.html

网友
2楼 ·

您可以从pattern属性访问编译正则表达式时使用的模式:

>>> import re
>>> re.compile(r'^(.*)$')
>>> r = re.compile(r'^(.*)$')
>>> r
<_sre.SRE_Pattern object at 0x7fa384ce5918>
>>> r.pattern
'^(.*)$'

相关问题