0
私は、それぞれが__init__
に一つの引数を持って、その後いくつかのデータを返すクラス、例えばの束を持って、クラス、無限リスト
class Animal(object):
def __init__(self, name):
if name == 'lion':
self.sound = 'roar'
elif name == 'human':
self.sound = 'burp'
else:
raise ValueError('Unknown animal')
class Passenger(object):
def __init__(self, index):
self.sound = 'I\'m passenger number %d.' % index
これらのクラスのいくつかは、本質的に一覧表示や辞書(のようなものですAnimal
)、一部は「オープンエンド」(Prime
など)です。いずれかのクラスをインスタンス化した後は、別の場所で使用されるため、同じ方法でインスタンス化できます(Something(arg)
)。
ではなくいいえ、ユーザーとしては、コードを見ずにどちらが有効なキーであるかわかりません。
animals = {
'lion': {'sound': 'roar'},
'human': {'sound': 'burp'},
}
のようなものは、その問題を解決するだろうが、ここではPassenger
中に入れることができません。
どちらの場合にも適合するデザインパターンはありますか?
その辞書をクラス変数にすることができます。実際のオブジェクト指向のアプローチは、 'Lion'と' Human'を 'Animal'を拡張するクラスにすることです –