Recherche…


Utiliser des assemblys .Net à partir de code Python

Avec IronPython, vous pouvez accéder à tout assembly .net compilé avec une version identique ou inférieure à celle du noyau IronPython.

Exemple: importation d'un ensemble et d'une classe .net

from System import Math

Exemple: Utilisation d'une classe importée:

from System import Math
print Math.Abs(-123)

Vous pouvez également charger des assemblys supplémentaires à l'aide du module clr intégré.

import clr
clr.AddReference('Sample') # Sample.dll inside of the working directory.

Alors, utilisez-le comme n'importe quelle autre bibliothèque .net ou python.

IronPython est écrit en pure c #

IronPython est entièrement écrit en utilisant le code .net (c #) géré. Ainsi, toutes les méthodes et bibliothèques python builtin (telles que next() , int() , etc.) sont écrites dans .net.

Cet exemple montre l'implémentation de len() pour une liste de types différents (quelques-uns seulement):

....

public static int len([NotNull]List/*!*/ list) {
    return list.__len__();
}

public static int len([NotNull]PythonTuple/*!*/ tuple) {
    return tuple.__len__();
}

public static int len([NotNull]PythonDictionary/*!*/ dict) {
    return dict.__len__();
}

....

Si nous avions besoin d'un autre type pour compter la longueur, ajoutez-les Builtin.cs dans Builtin.cs et il sera disponible automatiquement.

Utiliser des génériques dans IronPython

IronPython permet d'utiliser des classes et des méthodes génériques du framework .net. Les génériques peuvent être utilisés avec la même syntaxe que l'accès à un index. Pour transmettre plusieurs paramètres de type, ils doivent être séparés par une virgule:

l = Dictionary[int, str]()

De cette façon, nous créons un dictionnaire où les clés acceptent uniquement les integers et les valeurs doivent être une string .

Un exemple d'utilisation pourrait ressembler à ceci

from System.Collections.Generic import List
lst = List[str]()
lst.Add('Hello')
lst.Add('World')
for l in lst:
    print

Sortie

Bonjour

Monde

Lors de l'ajout de nouveaux éléments, une vérification de type sera également effectuée:

lst = List[str]()
lst.Add(123)

Traceback (dernier appel en dernier):

Fichier "<stdin>", ligne 1, dans

TypeError: str attendu, obtenu int



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow