1. ホーム
  2. パイソン

[解決済み】Pythonで複数のコンストラクタを定義することはできないのでしょうか?[重複しています]。

2022-04-17 21:35:59

質問

<ブロッククオート

重複の可能性があります。

Pythonで複数のコンストラクタを持つための、クリーンでPythonicな方法は何ですか?

Pythonでは、異なるシグネチャを持つ複数のコンストラクタを定義することはできないのでしょうか? もしできないのであれば、それを回避する一般的な方法は何でしょうか?

例えば、あるクラスを定義したいとします。 City .

と言えるようにしたいですね。 someCity = City() または someCity = City("Berlin") ここで、最初のものは単にデフォルトの名前値を与え、2番目のものはそれを定義するものです。

解決方法は?

Javaと異なり、コンストラクタを複数定義することはできません。 ただし、値が渡されない場合のデフォルト値を定義することは可能です。

def __init__(self, city="Berlin"):
  self.city = city