Rzucanie obiektu Pythona

public struct ThrowingPythonObject

Opakowanie PythonObject umożliwiające rzucanie wywołań metod. Wyjątki generowane przez funkcje Pythona są odzwierciedlane jako błędy Swift i zgłaszane.

Notatka

Celowo ThrowingPythonObject nie ma atrybutu @dynamicCallable , ponieważ składnia wywołania jest nieintuicyjna: x.throwing(arg1, arg2, ...) . Metody będą nadal nazywane dynamicallyCall do czasu dalszej dyskusji/projektu.
  • Wywołaj self z określonymi argumentami pozycyjnymi. Jeśli z jakiegoś powodu wywołanie nie powiedzie się, zostanie zgłoszony PythonError.invalidCall .

    Warunek wstępny

    self musi być wywoływalne w Pythonie.

    Deklaracja

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

    Parametry

    args

    Argumenty pozycyjne dla wywołania języka Python.

  • Wywołaj self z określonymi argumentami pozycyjnymi. Jeśli z jakiegoś powodu wywołanie nie powiedzie się, zostanie zgłoszony PythonError.invalidCall .

    Warunek wstępny

    self musi być wywoływalne w Pythonie.

    Deklaracja

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

    Parametry

    args

    Argumenty pozycyjne dla wywołania języka Python.

  • Wywołaj self z określonymi argumentami. Jeśli z jakiegoś powodu wywołanie nie powiedzie się, zostanie zgłoszony PythonError.invalidCall .

    Warunek wstępny

    self musi być wywoływalne w Pythonie.

    Deklaracja

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

    Parametry

    args

    Argumenty pozycyjne lub słowa kluczowe dla wywoływalnego języka Python.

  • Jeśli to możliwe, konwertuje na krotkę 2-krotną.

    Deklaracja

    public var tuple2: (PythonObject, PythonObject)? { get }
  • Jeśli to możliwe, konwertuje na krotkę 3-krotną.

    Deklaracja

    public var tuple3: (PythonObject, PythonObject, PythonObject)? { get }
  • Jeśli to możliwe, konwertuje na krotkę 4-krotną.

    Deklaracja

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