3

定義されたメンバーを持つクラスがあります:

self.myset = set()

myobject.myset.add('item')クラスのインスタンスを使用してを実行すると、問題なく動作します: print(myobject.myset){'item'} が得られます。

ただし、myobject.myset.union(yourset)whereyoursetが空でない を実行すると、機能しません。print(myobject.myset)まだ空のセットとして出力されます。addあるメソッド ( ) が機能しているのに、別のメソッド ( union) が静かに (例外がスローされずに) 失敗しているのはなぜですか? 動作myobject.myset = yoursetしますがunion、特に動作しません。

私はPython 3を使用しています。

4

2 に答える 2

7

set.union()古いセットをその場で変更しませんが、変更set.add()します。set.union()代わりに新しいセットを返します。

myobject.myset = myobject.myset.union(yourset)

これでうまくいくはずです。詳細については、Python のドキュメントをset.union()参照してください。

于 2015-07-18T01:15:48.183 に答える