Consultation de la documentation relative aux API .NET
Consultation de la documentation relative aux API .NET pour les programmeurs Python
La version préliminaire actuelle de la documentation sur les interfaces de script est générée automatiquement à partir des sources .NET / C# sous-jacentes. Elle contient par conséquent certains idiomes avec lesquels les programmeurs Python ne sont pas familiarisés.
La liste suivante donne quelques indices sur la manière de traduire ces notions dans la technique Python :
oLes interfaces contenues dans .NET définissent un contrat dont les membres (propriétés, méthodes) doivent être fournis par les classes qui mettent en œuvre cette interface. Dans IronPython, il est possible d'implémenter une ou plusieurs interfaces .NET en les dérivant de la même manière que des classes de base. Lorsqu'un membre déclaré par l'interface est manquant dans la déclaration, une exception est émise lors de l'exécution. (L'exemple de fichier DeviceImportFromSvn.py montre une classe qui implémente l'interface ImportReporter.)
oDans .NET, l'ensemble des paramètres, propriétés et valeurs de retour de fonction sont typés de manière statistique. Le type autorisé est annoté en regard du nom du paramètre. Pour les fonctions, le type de la valeur de retour est situé devant le nom de la fonction. Des instances de sous-classes sont autorisées lorsqu'une classe (ou une interface) parente est mentionnée. La valeur void désigne une fonction dépourvue de valeur de retour.
oLes méthodes peuvent être surchargées, une classe peut comporter plusieurs méthodes ayant le même nom, mais qui diffèrent quant au nombre et/ou aux types de paramètres. IronPython appelle automatiquement la variante correspondante.
oLe type INT peut contenir un nombre entier compris entre -2 147 483 648 et 2 147 483 647, le type BOOL équivaut au type Python BOOL (TRUE ou FALSE), le type STRING équivaut au type Python str ou à des caractères Unicode (équivalents dans IronPython). IDictionary<Objet, Objet> désigne un répertoire Python standard. IronPython effectue automatiquement la conversion entre les types Python et .NET.
oSi un type T dérive de IBaseObject<T>, il est possible de lui ajouter des membres supplémentaires à l'aide d'autres plug-ins. Les occurrences du type T dans les paramètres ou les valeurs de retour seront marquées par IExtendedObject<T>.
oL'interface IEnumerable<T> décrit toute séquence (listes, tableaux, générateurs) générant uniquement des objets de type T (ou des sous-classes). Lorsque la séquence génère un objet incompatible, une exception est émise au moment de l'exécution.
oL'interface IList<T> décrit une liste contenant uniquement des objets de type T (ou des sous-classes). Lorsque vous tentez d'ajouter un objet incompatible, une exception est émise.
oLa syntaxe params T [] name est équivalente à la syntaxe Python *name pour les listes d'arguments de variable, mais limite les paramètres au type T (ou aux sous-classes).
oLes énumérations (ENUM) n'existent pas en tant qu'éléments de langage dans Python. Leur utilisation est destinée à définir une quantité fixe de valeurs constantes, telles que les jours d'une semaine. Les valeurs d'énumération définies dans .NET sont accessibles dans IronPython via la syntaxe Nom.Membre (similaire aux membres de classes statiques), par exemple OnlineChangeOption.Try. Il existe plusieurs modèles d'émulation des énumérations dans Python, telles que celles décrites à l'adresse http://pypi.python.org/pypi/enum/ ou http://www.ironpython.info/index.php/Enumerations.
oLes propriétés marquées par { get; set; } sont accessibles en lecture et en écriture, tandis que les propriétés seulement marquées par { get; } sont accessibles en lecture seule. Ces entités sont similaires au décorateur @property dans Python.
Pour les scripts, les points d'entrée suivants sont disponibles :
osystem : fonctionnalité de base pour l'intégration dans le système EcoStruxure Machine Expert. Cet objet fournit toutes les fonctions décrites sous ISystem Interface, par exemple la sortie de EcoStruxure Machine Expert, l'accès à la fenêtre de messages ou à la requête si le mode --noUI est exécuté via la commande ui_present.
oprojects : fonctionnalité de base pour la gestion de projet. Cet objet fournit toutes les fonctions décrites sous IScriptProjects Interface, telles que le chargement de projets et d'archives de projet. En outre, il constitue le point d'entrée des projets individuels.
oonline : fonctionnalité de base pour la connexion en ligne à l'équipement. Lorsque la méthode create_online_application est utilisée, l'objet en ligne d'un objet d'application peut être créé. Cet objet en ligne permet de se connecter aux contrôleurs, de démarrer des applications et d'extraire des valeurs de variables.