Я программирую набор в Python и обнаружил что-то необычное. Этот встроенный метод позволяет сравнить две вещи в классе: & & знак. Первый дает ошибку (s2 не задано). Почему работает только вторая версия (без я)? Другое Встроенный как len() может иметь собственный атрибут.Странное поведение параметра self в классе 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)
Если вы 'х & y' , тогда первый аргумент '__and__' (условно' self') является 'x', а второй аргумент' y' и * нет третьего аргумента *. Это не странное поведение '' '' ', вы можете назвать первые два аргумента 'bananas' и' cream' и получим такое же поведение, если вы добавили 'chocolate_sauce' в список параметров. – jonrsharpe
Странно, я не думаю, что раньше я видел' && 'operator на Python ... это новое? Когда я попробую в 3.5.1, я просто получаю 'SyntaxError'. – Kevin