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

时间:2014-11-02 06:57:15

标签: python regex memory

我正在尝试调试脚本,并且我想要检查某个正则表达式。 (正则表达式作为参数从另一个脚本传递到我的程序中,所以我不能手动查找正则表达式。)在调试过程中我注意到有问题的正则表达式被加载到内存中,所以我看到像

<_sre.SRE_Pattern object at 0x000000000DB6E5D0>

我想访问该正则表达式对象,以便我可以确切地看到它正在做什么,但我似乎找不到在python中访问内存的方法。有谁知道怎么做?

2 个答案:

答案 0 :(得分:1)

看起来你正试图直接打印正则表达式对象,按照这些方针:

>>> 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

答案 1 :(得分:0)

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

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