0
に応じて右のPythonオブジェクトを取得します。私のメインのコードで私は、モジュールshape.pyで2つの継承したクラスを持っている設定またはユーザー入力
class Shape(object):
class Triangle(Shape):
class Square(Shape):
私はShape
をインスタンス化したいが、私は知りませんどのような形になるのでしょうか。形状は、ユーザ入力または設定に依存する。
設定やPythonのユーザー入力に従って適切なインスタンスを取得するにはどうすればよいでしょうか?
class_dict = {'triangle': Triangle, 'square': Square}
user_input = input()
shape_object = class_dict[user_input]()
ユーザ入力がtriangle
、shape_object
はTriangle
インスタンスになります場合、および:
ありがとうございました。私はここにデザインが見つかりましたhttps://github.com/evandempsey/python-design-patterns/blob/master/patterns/factory.py。彼らは 'ShapeFactory'を使います。私は今実際に最良の選択肢は何もありません。 – Jpaille
これはほとんど同じですが、私の例では辞書を 'if'ステートメントで置き換えるだけです。私は個人的に辞書を好む。より短く清潔。 – DeepSpace