繁体   English   中英

我将如何读取 python 中带尖括号的输出

[英]How would I read the outputs with angle brackets in python

代码示例:

>>> class Snake:
        pass

然后我这样做

>>> snake = Snake()
>>> print(snake)
<__main__.Snake object at 0x7f315c573550>

我如何测试这会返回什么?

if snake == "<__main__.Snake object at 0x7f315c573550>":
    print("it worked")

if 语句不起作用。 如何在 if 语句中测试蛇等于什么? 谢谢。

文档

默认情况下, object使用is实现__eq__()

所以, if snake == snake ,但这是一个重言式。

我认为您真正想要做的是检查snake是否是Snake实例

if isinstance(snake, Snake):

print显示 object 的字符串表示形式,而不是 object 本身。 其实object本身就是memory中的一堆bit,那么它应该是什么样子呢? 在您的情况下,您可以获得相同的字符串表示形式并进行比较。

str(snake) == "<__main__.Snake object at 0x7f315c573550>":
    print("it worked")

由于每次创建 Snake object 时末尾的数字都会有所不同,因此您可以使用正则表达式来匹配其中的一部分,同时保留该十六进制数字的详细信息。

import re
if re.match(r"<__main__\.Snake object at 0x[\da-f]+>", str(snake)):
    print("it worked")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM