python中的等式检查

2024-09-30 05:30:07 发布

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

我的程序如下:

print h   # h value is printed as h1
if h=='h1':
    servpro()
else:
    hostpro()

我将h值视为h1。但是if条件有个问题。即使h被打印为h1,也会执行else块。我的程序有什么问题?你知道吗


Tags: 程序ifisvalueas条件h1else
3条回答

为了更好地理解为什么比较结果是这样的,请查看Python's data model,并具体阅读object.__eq__object.__cmp__方法。当然可以重写这些方法。See examples.

根据您的注释,您可以在Host对象中找到field,该对象包含'h1',并且

if h.field == 'h1':
    servpro()
else:
    hostpro()

你也可以试试

if repr(h) == 'h1':
    servpro()
else:
    hostpro()

repr调用h的一个魔术方法repr,它给出一个包含h表示的字符串

Python的print语句显示对象的字符串表示形式。因此,如果它打印为“h1”(不带引号),您可以尝试测试它是否是对象的字符串表示形式:

if str(h) == 'h1':
    servpro()
else:
    hostpro()

相关问题 更多 >

    热门问题