Pythonの”read-only attributes”について

Pythonで複素数について調べていると、classの概念がわかっていないことに気づきました。

cf = 2 + 3j
print(cf.real)
print(cf.imag)
print(cf.conjugate())
2.0
3.0
(2-3j)

1行目でcfに複素数2+3jを定義し、2行目で実部、3行目で虚部を出力しています。3行目では共役複素数を計算しています。ところで、realやimagには()がなく、conjugate()には()がついています。conjugate()はメソッドであることはわかりますが、realやimagは何なのか、恥ずかしながらよくわかりませんでした。

英語のpython tutorialを見ると”read-only attributes”、日本語では”読み出し専用属性 “となっています。要するに変数なのでしょうかattributesとpropatyの違いが今一つすっきりしません。ちなみに、realやimagは変更することができません。

cf.real=5 とすると、エラーになってしまいます。このあたりclassの概念をしっかりと勉強する必要がありそうです。

この記事を書いた人

目次
閉じる