2024-09-30 05:30:07 发布
网友
我的程序如下:
print h # h value is printed as h1 if h=='h1': servpro() else: hostpro()
我将h值视为h1。但是if条件有个问题。即使h被打印为h1,也会执行else块。我的程序有什么问题?你知道吗
h
h1
else
为了更好地理解为什么比较结果是这样的,请查看Python's data model,并具体阅读object.__eq__和object.__cmp__方法。当然可以重写这些方法。See examples.
object.__eq__
object.__cmp__
根据您的注释,您可以在Host对象中找到field,该对象包含'h1',并且
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()
为了更好地理解为什么比较结果是这样的,请查看Python's data model,并具体阅读
object.__eq__
和object.__cmp__
方法。当然可以重写这些方法。See examples.根据您的注释,您可以在
Host
对象中找到field
,该对象包含'h1'
,并且你也可以试试
repr调用h的一个魔术方法repr,它给出一个包含h表示的字符串
Python的print语句显示对象的字符串表示形式。因此,如果它打印为“h1”(不带引号),您可以尝试测试它是否是对象的字符串表示形式:
相关问题 更多 >
编程相关推荐