hashlib / md5. Совместимость с python 2.4

Да, это довольно субъективно... Но вот мои 2 цента:

SELECT
   Column1,
   Column2
FROM Table1
WHERE 
   Column3 IN (
      SELECT Column4
      FROM Table2
      JOIN Table3 ON
         Table2.Column1 = Table3.Column1
   )

, Но, действительно, я, вероятно, переписал бы его без В:

SELECT
   Column1,
   Column2
FROM Table1
JOIN Table2 ON
   Table1.Column3 = Table2.Column4
JOIN Table3 ON
   Table2.Column1 = Table3.Column1

В основном, мои правила:

  • Используют для своей выгоды Ключевые слова
  • , Столбцы идут на отдельные строки, но ВЫБИРАЮТ модификаторы (ИЗБРАННЫЙ TOP 100, ВЫБЕРИТЕ ОТЛИЧНЫЙ, и т.д.) или отдельные столбцы (ВЫБЕРИТЕ 1, ВЫБЕРИТЕ идентификатор, ВЫБЕРИТЕ *, и т.д.) идут на ту же строку
  • Условия объединения, расположенные с отступом под СОЕДИНЕНИЕМ Использования пункта
  • СОЕДИНЕНИЯ для ВНУТРЕННЕГО ОБЪЕДИНЕНИЯ (так как это - общее), и полностью определите других (ОСТАВЛЕННЫЙ ВНЕШНЕЕ ОБЪЕДИНЕНИЕ, ПОЛНОЕ ВНЕШНЕЕ ОБЪЕДИНЕНИЕ, и т.д.)
  • Открытый parens на той же строке, закройте paren на отдельной строке. Если у Вас есть псевдоним, псевдоним идет с завершением paren.
8
задан Reinstate Monica 15 September 2009 в 00:46
поделиться

2 ответа

В общем, следующая конструкция вполне подходит:

try:
    import module
except ImportError: 
    # Do something else.

В вашем конкретном случае, возможно:

try: 
   from hashlib import md5
except ImportError:
   from md5 import md5
18
ответ дан 5 December 2019 в 08:24
поделиться

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

hash.py
----
try:
   import hashlib.md5 as md5mod
except ImportError:
   import md5 as md5mod

-----
prog.py
-----
from hash import md5mod
....

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

2
ответ дан 5 December 2019 в 08:24
поделиться
Другие вопросы по тегам:

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