Skip to main content

Conseils pour les programmeurs Python sur la documentation de l'API .NET

La version préliminaire actuelle de la documentation de l'interface de script a été générée automatiquement à partir des sources .NET et C# sous-jacentes. Par conséquent, la documentation inclut certaines expressions qui ne sont pas familières aux programmeurs Python. La présentation suivante fournit quelques conseils sur la façon dont ces expressions peuvent être comprises du point de vue Python.

  • Une interface est le contrat qui indique à une instance d'une classe qui implémente l'interface quels membres (méthodes, propriétés) elle doit préparer. Dans IronPython, vous pouvez implémenter une ou plusieurs interfaces .NET dans une classe en héritant d'une superclasse. Si une méthode est nécessaire pour l'interface mais n'est pas disponible dans la définition de classe, une exception est levée. (La DeviceImportFromSvn.py exemple montre une classe qui implémente le ImportReporter interface.)

  • Chaque paramètre et chaque méthode dans .NET est strictement typé. Le type de paramètre est séparé par un espace avant le nom du paramètre et le type de valeur de retour d'une méthode par un espace avant le nom de la méthode. Vous pouvez utiliser des instances de sous-classes lorsque vous définissez une classe (ou une interface). Une méthode sans valeur de retour est marquée void.

  • Vous pouvez surcharger les méthodes. Par conséquent, plusieurs méthodes portant le même nom peuvent exister dans une même classe. Cependant, le nombre ou les types de paramètres doivent être différents. IronPython prend automatiquement en charge l'appel de la surcharge de méthode la plus appropriée.

  • Le type de données int correspond à un nombre entier de -2 147 483 648 à 2 147 483 647.

    Le type de données bool correspond au type Python bool (True et False).

    Le type de données string correspond aux types Python str ou unicode, qui sont identiques dans IronPython.

    La IDictionary<object, object> Le type de données correspond à un dictionnaire Python ordinaire. IronPython convertit automatiquement entre les types de données Python et .NET.

  • Lorsqu'un T le type est hérité de IBaseObject<T>, cela signifie que ce type peut être étendu par d'autres plug-ins pour des membres supplémentaires. L'utilisation réelle de ce type étendu en tant que paramètre ou valeur de retour est marquée par IExtendedObject<T>.

  • La IEnumerable<T> interface avec un T type signifie que vous pouvez utiliser chaque séquence Python (générateurs, listes, tuples, etc.) qui renvoie T valeurs de type (ou une sous-classe). Renvoie la séquence d'objets incompatibles et lève une exception lors de l'exécution.

  • La IList<T> interface avec un T type identifie une liste typée qui garantit de n'inclure que des éléments de type T (ou une sous-classe). Une exception est levée lors de l'exécution lors d'une tentative d'ajout d'un objet incompatible.

  • La params T[] name id pour un paramètre de type T correspond au mécanisme Python *name pour les listes d'arguments variables.

  • En Python, les énumérations (enum) n'existent pas en tant que constructions de langage. Son but est de définir un nombre exact de valeurs constantes dans un but précis, par exemple les jours de la semaine. L'accès aux énumérations .NET depuis IronPython fonctionne en utilisant "Name.Member", par exemple via OnlineChangeOption.Try.

    Il existe également différentes approches pour émuler les énumérations en Python.

    Par exemple, voir : http://pypi.python.org/pypi/enum/

  • La syntaxe T name { get; set; } définit une propriété avec name comme nom et T comme type. Si set; est manquant, la propriété est en lecture seule. En Python, la construction respective est @property décorateur.