БросокPythonОбъект

public struct ThrowingPythonObject

Оболочка PythonObject , позволяющая вызывать вызовы методов. Исключения, создаваемые функциями Python, отображаются как ошибки Swift и выдаются.

Примечание

ThrowingPythonObject намеренно не имеет атрибута @dynamicCallable , поскольку синтаксис вызова неинтуитивен: x.throwing(arg1, arg2, ...) . Методы по-прежнему будут называться dynamicallyCall до дальнейшего обсуждения/проектирования.
  • Вызовите self с указанными позиционными аргументами. Если вызов по какой-либо причине завершается неудачно, генерируется PythonError.invalidCall .

    Предварительное условие

    self должен быть вызываемым объектом Python.

    Декларация

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

    Параметры

    args

    Позиционные аргументы для вызываемого объекта Python.

  • Вызовите self с указанными позиционными аргументами. Если вызов по какой-либо причине завершается неудачно, генерируется PythonError.invalidCall .

    Предварительное условие

    self должен быть вызываемым объектом Python.

    Декларация

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

    Параметры

    args

    Позиционные аргументы для вызываемого объекта Python.

  • Вызовите self с указанными аргументами. Если вызов по какой-либо причине завершается неудачно, генерируется PythonError.invalidCall .

    Предварительное условие

    self должен быть вызываемым объектом Python.

    Декларация

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

    Параметры

    args

    Позиционные или ключевые аргументы для вызываемого объекта Python.

  • Если возможно, преобразуется в двухкортеж.

    Декларация

    public var tuple2: (PythonObject, PythonObject)? { get }
  • Если возможно, преобразуется в тройной кортеж.

    Декларация

    public var tuple3: (PythonObject, PythonObject, PythonObject)? { get }
  • Если возможно, преобразуется в четырехкортеж.

    Декларация

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