-1
私はPythonでプログラミングを設定しており、珍しいものを発見しました。この組み込みメソッドは、クラス内の2つのものを& &符号で比較します。最初にエラーが返されます(s2は指定されていません)。 2番目のバージョンのみが機能しているのはなぜですか?その他len()のような組み込み関数は自己アトリビュートを持つことができます。Pythonクラスの自己パラメータの奇妙な振る舞い
def __and__(self,s1,s2):
table1 = list(s1._iter())
table2 = list(s2._iter())
s1.clear()
for element in table2:
if element in table1:
s1.add(element)
def __and__(s1,s2):
table1 = list(s1._iter())
table2 = list(s2._iter())
s1.clear()
for element in table2:
if element in table1:
s1.add(element)
あなたが行う場合は、 'X&y' '__and__'(通常は' self')の最初の引数は 'x'で、2番目の引数は' y'で3番目の引数*はありません。これは奇妙な 'self'の動作ではありません。最初の2つの引数 'bananas'と' cream'がパラメータリストに 'chocolate_sauce'を追加しても同じ動作をします – jonrsharpe
奇妙なことに、私はPythonで' && '演算子を見たことがないと思います... Isそれは新しいですか?3.5.1で試してみると、私は 'SyntaxError'を得るだけです。 – Kevin