私のプログラムは次のとおりです。
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 の print ステートメントは、オブジェクトの文字列表現を表示します。したがって、「h1」(引用符なし)として出力される場合、それがオブジェクトの文字列表現であるかどうかをテストできます。
if str(h) == 'h1':
servpro()
else:
hostpro()
行っている比較の結果がこのようになっている理由をよりよく理解するには、Python のデータ モデルobject.__eq__
を見て、具体的には メソッド とメソッドについて読んでくださいobject.__cmp__
。もちろん、これらのメソッドをオーバーライドできます。例を参照してください。