Если это для Python 2.x или для Python 3.2 +, можно также использовать callable()
. Это раньше удерживалось от использования, но теперь неустаревше, таким образом, можно использовать его снова. Можно считать обсуждение здесь: http://bugs.python.org/issue10518 . Можно сделать это с:
callable(obj)
, Если это для Python 3.x, но прежде 3.2, проверьте, имеет ли объект __call__
атрибут. Можно сделать это с:
hasattr(obj, '__call__')
часто предложенный types.FunctionTypes
подход не корректен, потому что ему не удается покрыть много случаев, как которые Вы, по-видимому, хотели бы, чтобы он передал, с builtins:
>>> isinstance(open, types.FunctionType)
False
>>> callable(open)
True
надлежащий способ проверить свойства утиных типизированных объектов состоит в том, чтобы спросить их, если они шарлатан, чтобы не видеть, помещаются ли они в контейнер размера утки. Не используйте types.FunctionType
, если у Вас нет очень определенной идеи того, какова функция.
Если вы используете PHP 5.3, сейчас доступна PHP-реализация ActiveRecord ( ссылка ). Он также находится на github на случай, если вы захотите его посмотреть или создать форк. Я проверил исходный код на github, и он действительно использует PDO в своей основе для выполнения запросов.
Одно из возможных решений - позволить машине состояний регулярных выражений проверять альтернативы за вас. Вам нужно будет провести тест, чтобы увидеть, станет ли результат заметно более эффективным, но он, безусловно, будет более удобным в обслуживании.
Во-первых, вы должны поддерживать файл, содержащий по одному интересующему шаблону в каждой строке.
Failed in routing out
Agent .+ failed
Record Not Exist in DB
Затем вы должны прочтите этот файл в начале выполнения и создайте большое регулярное выражение с помощью «альтернативного» оператора « |
»