この作品:Pythonで `round`と` __round__`の違いは何ですか? python 3では
Celsius = [39.2, 45.2, 37.3, 37.8, 89]
Fahrenheit = map(lambda x: ((float(9/5))*x + 32).__round__(3), Celsius)
print(list(Fahrenheit))
[102.56, 113.36, 99.14, 100.04, 192.2]
しかし、これは動作しない、なぜ?:
Fahrenheit = map(lambda x: ((float(9/5))*x + 32).round(3), Celsius)
また、Pythonスクリプトのnowdaysの多くは、この古い形式__round__
を使用していない、私はスクリプトをよりきれいに見せる理由を考えてください。その他の中核的な理由は?
'__round__'は*フックメソッド*です。 'round()'関数を使うと、必要に応じて 'round((float(9/5))* x + 32)、3)'というフックメソッドを使います。しかし、 'float(9/5)'は間違った値であり、あなたは '9.0/5'を望んでいます。 –
しかし、なぜround(2)は浮動小数点では動作しませんか?これは本当に混乱しています。 – everestial007
浮動小数点数には '.round'メソッドがないので...?これについてはっきりしないものは何ですか? –