私はA
クラスのすべてのオブジェクトで使用される静的または外部のリストを持つ必要があります。コンストラクタargsに基づいて静的メンバーを初期化する方法はありますか?
def initialize(x, y):
for i in range(0, x):
static_to_return.append([])
for j in range(0, y):
static_to_return[i].append((i * x) + 1 + y)
return static_to_return
class A:
static_member = initialize(x, y)
def __init__(self, x, y):
self.x = x
self.y = y
どのようにこの作品を作るために:リストの値は、例えば、一度だけ初期化する必要があり、コンストラクタのパラメータから取られるべき? static_member
を別のモジュールに移動する方が良いでしょうか?または__init__
の機能でstatic_member
に書き込むことは可能ですか?
それはありませんあなたが何を期待しているのかを明確にしてください。これは静的メンバー(実際は:class属性)か、すべてのインスタンスに提供されるコンストラクタパラメータから初期化する必要がありますか? 'A'の2番目のインスタンスを作成するとどうなりますか?クラスファクトリ( 'A = build_A_with(x、y)')はより良いアプローチですか?どこで(そしていつ) 'x'と' y'が出てくるのでしょうか? – jonrsharpe
多くの 'A'クラスオブジェクトがあり、それらのすべてが同じ' x'と 'y'値を持ちます。私が必要とするのは、コンストラクタのパラメータに基づいて、 'A'クラスの最初のインスタンス化でこの属性を初期化することです。 – Kacper
それらがすべて同じ 'x'と' y'を持っているなら、なぜそれらは '__init__'パラメータですか?これらは、すべてのインスタンスごとに異なるものを設定するために使用されます。値はどこから来るのでしょうか?もっと文脈を与えることができますか?これは[XY(hah!)の問題](http://meta.stackexchange.com/q/66377/248731)と思われます。 – jonrsharpe