2014-01-18 4 views
0

В настоящее время я изучаю методы для каждой встроенной функции, многие применимы к другим функциям. Я наткнулся на 2 метода с функцией bool(): x.__lshift__ и x.__pow__. Теперь x.__lshift__(y) соответствует x<<y, а x.__pow__(y[, z]) соответствует pow(x, y[, z]).Когда использовать x .__ lshift__ и x .__ pow__

Мой вопрос: Эти два метода кажутся почти то же самое (я использовал их внутри оболочки, чтобы проверить, если этот вопрос, кажется, не думал, что я, вероятно, использовали их неправильно), Какая разница, использование с bool(), между двумя?

+0

Это разные функции! – Antimony

+0

@Antimony .... разница в использовании методов в функции 'bool()' – TimLayne

+0

Есть ли у вас ссылка на источник? – Antimony

ответ

1

В python вам разрешено перегружать операторы путем переопределения некоторых специальных методов-членов. Вы можете изменить поведение оператора < < путем переопределения lshift. То же самое относится к другим операторам и их соответствующим функциям.

operator overloading in python

Смежные вопросы