2016-07-19 17 views

答えて

3

あなたは動的Symbolに属性を追加することはできません。

SymPyは、同等のものと比較する式を置き換えることができると想定しているため、おそらく悪い考えです。だから、2つのシンボルを作成し、1に動的属性を保存した場合(はこれを想定可能だった)

a1 = Symbol('a') 
a2 = Symbol('a') 
a1.something = 0 

それはそうすることのように感じた時はいつでも、彼らが等しい比較として次にSymPyは(a1a2を交換するの自由を取るだろうa1 == a2)、これは確かに意図しない結果を招くことになります。効果的に通訳を伝え

あなたはsource codeで見てみるならば、あなたはSymbolは、パフォーマンス上の理由からそのクラスで__slots__を定義していることを見ることができ、「これらは、すべてのインスタンスは、このクラスに属性です」。これはですなぜあなたはSymbolに属性を動的に追加できません。

サブクラスオブジェクトの等価比較に考慮されるように、希望の属性をargsに保存するSymbolのサブクラスを作成することもできます。私はややここに言い換えトピックの拡張議論については


、Googleのスレッドを参照してください。How to equip a Symbol with an additional attribute?

関連する問題