В какой ситуации встроенный модуль 'оператора' должен использоваться в Python?

Простую альтернативу этой проблеме можно решить, предоставив соответствующие разрешения в самой базе данных. Например: если вы используете базу данных mysql, введите в базу данных через терминал или предоставленный интерфейс и просто следуйте этой команде:

 GRANT SELECT, INSERT, DELETE ON database TO username@'localhost' IDENTIFIED BY 'password';

Это ограничит пользователя ограничиться только указанным запросом только. Удалите разрешение удаления, и поэтому данные никогда не будут удалены из запроса, запущенного с php-страницы. Второе, что нужно сделать, это очистить привилегии, чтобы mysql обновлял разрешения и обновления.

FLUSH PRIVILEGES; 

Дополнительная информация о flush .

To см. текущие привилегии для пользователя, вызывают следующий запрос.

select * from mysql.user where User='username';

Подробнее о GRANT .

42
задан 2 revs, 2 users 100% 7 April 2010 в 22:40
поделиться

2 ответа

Возможно самое популярное использование является operator.itemgetter. Учитывая список lst из кортежей, можно отсортировать по ith элементу: lst.sort(key=operator.itemgetter(i))

, Конечно, Вы могли сделать то же самое без оператора путем определения собственной ключевой функции, но модуль оператора делает его немного более опрятным.

относительно остальных, Python позволяет функциональный стиль программирования, и таким образом, это может подойти - например, Greg уменьшают пример.

Вы могли бы спорить: "Почему делают мне нужно operator.add, когда я могу просто сделать: add = lambda x, y: x+y?" Ответы:

  1. operator.add (я думаю), немного быстрее.
  2. Это делает код легче понять для Вас или другого человека позже, смотря на него. Они не должны искать определение, добавляют, потому что они знают то, что делает модуль оператора.
  3. operator.add picklable, в то время как lambda не. Это означает, что функция может быть сохранена на диск или передана между процессами.
38
ответ дан 3 revs, 3 users 90% 26 November 2019 в 23:47
поделиться

Один пример находится в употреблении эти reduce() функция:

>>> import operator
>>> a = [2, 3, 4, 5]
>>> reduce(lambda x, y: x + y, a)
14
>>> reduce(operator.add, a)
14
26
ответ дан Greg Hewgill 26 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: