Lancio di PythonObject

public struct ThrowingPythonObject

Un wrapper PythonObject che consente di lanciare chiamate al metodo. Le eccezioni prodotte dalle funzioni Python si riflettono come errori Swift e vengono lanciate.

Nota

È intenzionale che ThrowingPythonObject non abbia l'attributo @dynamicCallable perché la sintassi della chiamata non è intuitiva: x.throwing(arg1, arg2, ...) . I metodi verranno comunque denominati dynamicallyCall fino a ulteriore discussione/progettazione.
  • Chiama self con gli argomenti posizionali specificati. Se la chiamata fallisce per qualche motivo, viene lanciato PythonError.invalidCall .

    Precondizione

    self deve essere un richiamabile Python.

    Dichiarazione

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

    Parametri

    args

    Argomenti posizionali per il richiamabile Python.

  • Chiama self con gli argomenti posizionali specificati. Se la chiamata fallisce per qualche motivo, viene lanciato PythonError.invalidCall .

    Precondizione

    self deve essere un richiamabile Python.

    Dichiarazione

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

    Parametri

    args

    Argomenti posizionali per il richiamabile Python.

  • Chiama self con gli argomenti specificati. Se la chiamata fallisce per qualche motivo, viene lanciato PythonError.invalidCall .

    Precondizione

    self deve essere un richiamabile Python.

    Dichiarazione

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

    Parametri

    args

    Argomenti posizionali o di parole chiave per il richiamabile Python.

  • Converte in una tupla di 2, se possibile.

    Dichiarazione

    public var tuple2: (PythonObject, PythonObject)? { get }
  • Converte in una tupla di 3, se possibile.

    Dichiarazione

    public var tuple3: (PythonObject, PythonObject, PythonObject)? { get }
  • Converte in una tupla di 4, se possibile.

    Dichiarazione

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