我的程序如下:
print h # h value is printed as h1
if h=='h1':
servpro()
else:
hostpro()
我将h
价值视为h1
. 但是if条件有问题。即使h
打印为h1
,该else
块也正在执行。我的程序有什么问题?
我的程序如下:
print h # h value is printed as h1
if h=='h1':
servpro()
else:
hostpro()
我将h
价值视为h1
. 但是if条件有问题。即使h
打印为h1
,该else
块也正在执行。我的程序有什么问题?
为了更好地理解为什么你所做的比较结果是这样的,请查看Python 的数据模型,并专门阅读object.__eq__
和object.__cmp__
方法。当然,您可以覆盖这些方法。请参阅示例。
Python 的 print 语句显示对象的字符串表示。因此,如果它打印为 'h1' (不带引号),您可以尝试测试这是否是对象的字符串表示形式:
if str(h) == 'h1':
servpro()
else:
hostpro()
根据您的评论,您可以在持有并执行field
的Host
对象中找到'h1'
if h.field == 'h1':
servpro()
else:
hostpro()
你也可以试试
if repr(h) == 'h1':
servpro()
else:
hostpro()
repr 调用 h 的一个魔术方法repr,它给出了一个包含 h 表示的字符串