0

私のプログラムは次のとおりです。

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

hとしての価値を見ていますh1。しかし、if 条件に問題があります。hとして出力されますがh1elseブロックは実行されています。私のプログラムの問題は何ですか?

4

3 に答える 3

0

Python の print ステートメントは、オブジェクトの文字列表現を表示します。したがって、「h1」(引用符なし)として出力される場合、それがオブジェクトの文字列表現であるかどうかをテストできます。

if str(h) == 'h1':
    servpro()
else:
    hostpro()
于 2013-10-03T06:17:23.413 に答える
0

行っている比較の結果がこのようになっている理由をよりよく理解するには、Python のデータ モデルobject.__eq__を見て、具体的には メソッド とメソッドについて読んでくださいobject.__cmp__。もちろん、これらのメソッドをオーバーライドできます。例を参照してください。

于 2013-10-03T06:16:54.237 に答える