En el lenguaje Python, cuando se usan algunas bibliotecas, los documentos encontrados en la red no están completos, lo que requiere verificar si el objeto Python correspondiente contiene la función requerida o constante. A continuación se presenta cómo verificar qué atributos están contenidos en el objeto Python, como funciones miembro, variables, etc., donde el objeto Python se refiere a objetos con muchos elementos como clases, módulos e instancias. Aquí, el paquete OpenCV2 Python cv2 se usa como un ejemplo para explicar.
Debido a que OpenCV se implementa en lenguaje C / C ++, todas las funciones y variables no están empaquetadas para que los usuarios de Python las llamen, y a veces la documentación correspondiente no se encuentra en Internet; también hay dos versiones de OpenCV: OpenCV2 y OpenCV3, estas dos Esta versión también tiene algunas diferencias en las funciones y variables utilizadas.
1. La función dir ()
dir ( [ objeto ] ) devolverá una lista de todos los atributos válidos del objeto. Los ejemplos son los siguientes:
$ python Python 2.7.8 (predeterminado, 24 de septiembre de 2015, 18:26:19) [GCC 4.9.2 20150212 (Red Hat 4.9.2-6)] en linux2 Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información. >>> importar cv2 >>> mser = cv2.MSER () >>> usted (mser) ['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__sepr__', '__sepr__', '__ __sizeof__ ',' __str__ ',' __subclasshook__ ',' detect ',' empty ',' getAlgorithm ',' getBool ',' getDouble ',' getInt ',' getMat ',' getMatVector ',' getParams ',' getString ' , 'paramHelp', 'paramType', 'setAlgorithm', 'setBool', 'setDouble', 'setInt', 'setMat', 'setMatVector', 'setString']
2. La función vars ()
vars ( [ objeto ] ) devuelve el atributo __dict__ del objeto objeto, donde el objeto objeto puede ser un módulo, clase, instancia o cualquier otro objeto con el atributo __dict__. Por lo tanto, es equivalente a acceder directamente al atributo __dict__. El ejemplo es el siguiente (aquí hay un contraejemplo, no hay atributo __dict__ en el objeto mser):
>>> vars (mser) Rastreo (llamadas recientes más última): Archivo "<stdin>", línea 1, en <module> TypeError: el argumento vars () debe tener el atributo __dict__ >>> mser .__ dict__ Rastreo (llamadas recientes más última): Archivo "<stdin>", línea 1, en <module> AttributeError: el objeto 'cv2.MSER' no tiene el atributo '__dict__'
3. función de ayuda ()
ayuda ( [ objeto ] ) Llama al sistema de ayuda incorporado. De entrada
>>> ayuda (mser)
El contenido se muestra de la siguiente manera:
Ayuda sobre el objeto MSER: clase MSER (FeatureDetector) El | Orden de resolución del método: El | MSER El | FeatureDetector El | Algoritmo El | __builtin __. object El | El | Métodos definidos aquí: El | El | __repr __ (...) El | x .__ repr __ () <==> repr (x) El | El | detectar(...) El | detectar (imagen [, máscara]) -> msers El | El | -------------------------------------------------- -------------------- El | Datos y otros atributos definidos aquí: El | El | __new__ = <método incorporado __new__ de tipo objeto> El | T .__ new __ (S, ...) -> un nuevo objeto con tipo S, un subtipo de T
Presione la tecla h para mostrar la información de ayuda; presione la tecla q para salir.
4. función type ()
type ( object ) devuelve el tipo de objeto objeto.
>>> tipo (mser) <tipo 'cv2.MSER'> >>> tipo (mser.detect) <escriba 'builtin_function_or_method'>
5. función hasattr ()
hasattr ( objeto , nombre ) se usa para determinar si el nombre (tipo de cadena) es un atributo del objeto, si devuelve Verdadero, de lo contrario, devuelve Falso
>>> hasattr (mser, 'detectar') Cierto >>> hasattr (mser, 'calcular') Falso
6. función invocable ()
invocable ( objeto ): si el objeto objeto es invocable, devuelve True; de lo contrario, devuelve False. Tenga en cuenta que la llamada puede fallar incluso si devuelve True, pero la llamada debe fallar si devuelve False.
>>> invocable (mser.detect) Cierto
Referencias
1. https://stackoverflow.com/questions/2675028/list-attributes-of-an-object
2. https://docs.python.org/2/library/functions.html