การขว้าง PythonObject

public struct ThrowingPythonObject

wrapper PythonObject ที่เปิดใช้งานการเรียกใช้เมธอด Throw ข้อยกเว้นที่สร้างโดยฟังก์ชัน 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 ที่เรียกได้

  • แปลงเป็น 2-tuple ถ้าเป็นไปได้

    คำประกาศ

    public var tuple2: (PythonObject, PythonObject)? { get }
  • แปลงเป็น 3-tuple ถ้าเป็นไปได้

    คำประกาศ

    public var tuple3: (PythonObject, PythonObject, PythonObject)? { get }
  • แปลงเป็น 4-tuple ถ้าเป็นไปได้

    คำประกาศ

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