[英]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.