Skip to main content

Sugerencias para programadores de Python sobre la documentación de la API de .NET

La versión preliminar actual de la documentación de la interfaz del script se ha generado automáticamente a partir de las fuentes subyacentes de .NET y C#. Por lo tanto, la documentación incluye algunas expresiones que no son familiares para los programadores de Python. La siguiente descripción general proporciona algunos consejos sobre cómo se pueden entender estas expresiones desde la perspectiva de Python.

  • Una interfaz es el contrato que le dice a una instancia de una clase que implementa la interfaz qué miembros (métodos, propiedades) tiene que preparar. En IronPython, puede implementar una o más interfaces .NET en una clase al heredar de una superclase. Si se necesita un método para la interfaz pero no está disponible en la definición de clase, se lanza una excepción. (El DeviceImportFromSvn.py El ejemplo muestra una clase que implementa el ImportReporter interfaz.)

  • Cada parámetro y cada método en .NET está estrictamente tipificado. El tipo de parámetro está separado por un carácter de espacio antes del nombre del parámetro y el tipo de valor de retorno de un método por un carácter de espacio antes del nombre del método. Puede usar instancias de subclases cuando define una clase (o interfaz). Se marca un método sin valor de retorno void.

  • Puede sobrecargar los métodos. Como resultado, pueden existir múltiples métodos con el mismo nombre en una clase. Sin embargo, el número o los tipos de parámetros tienen que ser diferentes. IronPython automáticamente se encarga de llamar a la sobrecarga del método más apropiado.

  • el tipo de datos int corresponde a un número entero de -2.147.483.648 a 2.147.483.647.

    el tipo de datos bool corresponde al tipo Python bool (True y False).

    el tipo de datos string corresponde a los tipos de Python str o unicode, que son idénticos en IronPython.

    El IDictionary<object, object> el tipo de datos corresponde a un diccionario Python ordinario. IronPython convierte automáticamente entre tipos de datos Python y .NET.

  • Cuando un T el tipo se hereda de IBaseObject<T>, significa que este tipo se puede ampliar con otros complementos para miembros adicionales. El uso real de este tipo extendido como parámetro o valor de retorno está marcado por IExtendedObject<T>.

  • El IEnumerable<T> interfaz a un T tipo significa que puede usar cada secuencia de Python (generadores, listas, tuplas, etc.) que devuelve T valores de tipo (o una subclase). Devuelve la secuencia de objetos incompatibles y lanza una excepción en tiempo de ejecución.

  • El IList<T> interfaz a un T tipo identifica una lista tipificada que garantiza incluir solo elementos de tipo T (o una subclase). Se lanza una excepción en tiempo de ejecución cuando se intenta agregar un objeto incompatible.

  • El params T[] name id para un parámetro de tipo T corresponde al mecanismo de Python *name para listas de argumentos variables.

  • En Python, las enumeraciones (enum) no existen como construcciones del lenguaje. Su propósito es definir un número exacto de valores constantes para un propósito específico, por ejemplo, los días de la semana. El acceso a las enumeraciones .NET desde IronPython funciona usando "Name.Member", por ejemplo a través de OnlineChangeOption.Try.

    También hay diferentes enfoques para emular enumeraciones en Python.

    Por ejemplo, vea: http://pypi.python.org/pypi/enum/

  • la sintaxis T name { get; set; } define una propiedad con name como el nombre y T como el tipo. Si set; falta, entonces la propiedad es de solo lectura. En Python, la construcción respectiva es @property decorador.