LancerPythonObject

public struct ThrowingPythonObject

Un wrapper PythonObject qui permet de lancer des appels de méthode. Les exceptions produites par les fonctions Python sont reflétées sous forme d'erreurs Swift et levées.

Note

Il est intentionnel que ThrowingPythonObject n'ait pas l'attribut @dynamicCallable car la syntaxe d'appel n'est pas intuitive : x.throwing(arg1, arg2, ...) . Les méthodes seront toujours nommées dynamicallyCall jusqu'à discussion/conception ultérieure.
  • Appelez self avec les arguments de position spécifiés. Si l'appel échoue pour une raison quelconque, PythonError.invalidCall est lancé.

    Condition préalable

    self doit être un appelable en Python.

    Déclaration

    @discardableResult
    public func dynamicallyCall(
        withArguments args: PythonConvertible...) throws -> PythonObject

    Paramètres

    args

    Arguments positionnels pour l'appelable Python.

  • Appelez self avec les arguments de position spécifiés. Si l'appel échoue pour une raison quelconque, PythonError.invalidCall est lancé.

    Condition préalable

    self doit être un appelable en Python.

    Déclaration

    @discardableResult
    public func dynamicallyCall(
        withArguments args: [PythonConvertible] = []) throws -> PythonObject

    Paramètres

    args

    Arguments positionnels pour l'appelable Python.

  • Appelez self avec les arguments spécifiés. Si l'appel échoue pour une raison quelconque, PythonError.invalidCall est lancé.

    Condition préalable

    self doit être un appelable en Python.

    Déclaration

    @discardableResult
    public func dynamicallyCall(
        withKeywordArguments args:
        KeyValuePairs<String, PythonConvertible> = [:]) throws -> PythonObject

    Paramètres

    args

    Arguments de position ou de mot-clé pour l'appelable Python.

  • Se convertit en 2-tuples, si possible.

    Déclaration

    public var tuple2: (PythonObject, PythonObject)? { get }
  • Se convertit en 3-tuples, si possible.

    Déclaration

    public var tuple3: (PythonObject, PythonObject, PythonObject)? { get }
  • Se convertit en 4-tuples, si possible.

    Déclaration

    public var tuple4: (PythonObject, PythonObject, PythonObject, PythonObject)? { get }