PythonObject

@dynamicCallable
@dynamicMemberLookup
public struct PythonObject
extension PythonObject : CustomStringConvertible
extension PythonObject : CustomPlaygroundDisplayConvertible
extension PythonObject : CustomReflectable
extension PythonObject : PythonConvertible, ConvertibleFromPython
extension PythonObject : SignedNumeric
extension PythonObject : Strideable
extension PythonObject : Equatable, Comparable
extension PythonObject : Hashable
extension PythonObject : MutableCollection
extension PythonObject : Sequence
extension PythonObject : ExpressibleByBooleanLiteral, ExpressibleByIntegerLiteral,
ExpressibleByFloatLiteral, ExpressibleByStringLiteral
extension PythonObject : ExpressibleByArrayLiteral, ExpressibleByDictionaryLiteral

PythonObject đại diện cho một đối tượng trong Python và hỗ trợ tra cứu viên năng động. Bất kỳ truy cập thành viên như object.foo sẽ tự động yêu cầu thời gian chạy Python cho một thành viên với tên được chỉ định trong đối tượng này.

PythonObject được truyền đến và trở về từ tất cả các cuộc gọi chức năng Python và tài liệu tham khảo thành viên. Nó hỗ trợ các toán tử so sánh và số học Python tiêu chuẩn.

Bên trong, PythonObject được thực hiện như một con trỏ tham khảo-tính đến một Python C API PyObject .

  • Một mô tả văn bản của này PythonObject , được sản xuất bởi Python.str .

    Tuyên ngôn

    public var description: String { get }
  • Tuyên ngôn

    public var playgroundDescription: Any { get }
  • Tuyên ngôn

    public var customMirror: Mirror { get }
  • Tạo một thể hiện mới từ một PythonConvertible giá trị.

    Tuyên ngôn

    init<T>(_ object: T) where T : PythonConvertible
  • Tuyên ngôn

    public init(_ object: PythonObject)
  • Tuyên ngôn

    public var pythonObject: PythonObject { get }
  • Trả về một phiên bản callable này PythonObject . Khi được gọi, kết quả ném ra một lỗi Swift nếu hàm Python bên dưới ném ra một ngoại lệ Python.

    Tuyên ngôn

    var throwing: ThrowingPythonObject { get }
  • Returns một PythonObject wrapper có khả năng truy cập thành viên.

    Tuyên ngôn

    var checking: CheckingPythonObject { get }
  • Tuyên ngôn

    subscript(dynamicMember memberName: String) -> PythonObject { get nonmutating set }
  • Truy cập các yếu tố tương ứng với quy định PythonConvertible giá trị đại diện cho một chìa khóa.

    Ghi chú

    Đây là tương đương với object[key] bằng Python.

    Tuyên ngôn

    subscript(key: PythonConvertible...) -> PythonObject { get nonmutating set }
  • Chuyển đổi sang bộ 2 bộ.

    Tuyên ngôn

    var tuple2: (PythonObject, PythonObject) { get }
  • Chuyển đổi sang bộ 3 bộ.

    Tuyên ngôn

    var tuple3: (PythonObject, PythonObject, PythonObject) { get }
  • Chuyển đổi sang 4 tuple.

    Tuyên ngôn

    var tuple4: (PythonObject, PythonObject, PythonObject, PythonObject) { get }
  • Gọi self với các đối số vị trí nhất định.

    Điều kiện tiên quyết

    self phải là một callable Python.

    Tuyên ngôn

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

    Thông số

    args

    Các đối số vị trí cho Python có thể gọi.

  • Gọi self với những lập luận cụ thể.

    Điều kiện tiên quyết

    self phải là một callable Python.

    Tuyên ngôn

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

    Thông số

    args

    Các đối số vị trí hoặc từ khóa cho Python có thể gọi.

  • Tuyên ngôn

    init(tupleOf elements: PythonConvertible...)
  • Tuyên ngôn

    init<T : Collection>(tupleContentsOf elements: T)
        where T.Element == PythonConvertible
  • Tuyên ngôn

    init<T : Collection>(tupleContentsOf elements: T)
        where T.Element : PythonConvertible
  • Tuyên ngôn

    static func + (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func - (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func * (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func / (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func += (lhs: inout PythonObject, rhs: PythonObject)
  • Tuyên ngôn

    static func -= (lhs: inout PythonObject, rhs: PythonObject)
  • Tuyên ngôn

    static func *= (lhs: inout PythonObject, rhs: PythonObject)
  • Tuyên ngôn

    static func /= (lhs: inout PythonObject, rhs: PythonObject)
  • Tuyên ngôn

    static func & (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func | (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func ^ (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func &= (lhs: inout PythonObject, rhs: PythonObject)
  • Tuyên ngôn

    static func |= (lhs: inout PythonObject, rhs: PythonObject)
  • Tuyên ngôn

    static func ^= (lhs: inout PythonObject, rhs: PythonObject)
  • Tuyên ngôn

    prefix static func ~ (operand: `Self`) -> PythonObject
  • Tuyên ngôn

    public init<T>(exactly value: T) where T : BinaryInteger
  • Tuyên ngôn

    public typealias Magnitude = PythonObject
  • Tuyên ngôn

    public var magnitude: PythonObject { get }
  • Tuyên ngôn

    public prefix static func - (operand: `Self`) -> PythonObject
  • Tuyên ngôn

    public typealias Stride = PythonObject
  • Tuyên ngôn

    public func distance(to other: PythonObject) -> Stride
  • Tuyên ngôn

    public func advanced(by stride: Stride) -> PythonObject
  • Tuyên ngôn

    public static func == (lhs: PythonObject, rhs: PythonObject) -> Bool
  • Tuyên ngôn

    public static func != (lhs: PythonObject, rhs: PythonObject) -> Bool
  • Tuyên ngôn

    public static func < (lhs: PythonObject, rhs: PythonObject) -> Bool
  • Tuyên ngôn

    public static func <= (lhs: PythonObject, rhs: PythonObject) -> Bool
  • Tuyên ngôn

    public static func > (lhs: PythonObject, rhs: PythonObject) -> Bool
  • Tuyên ngôn

    public static func >= (lhs: PythonObject, rhs: PythonObject) -> Bool
  • Tuyên ngôn

    static func == (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func != (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func < (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func <= (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func > (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    static func >= (lhs: PythonObject, rhs: PythonObject) -> PythonObject
  • Tuyên ngôn

    public func hash(into hasher: inout Hasher)
  • Tuyên ngôn

    public typealias Index = PythonObject
  • Tuyên ngôn

    public typealias Element = PythonObject
  • Tuyên ngôn

    public var startIndex: Index { get }
  • Tuyên ngôn

    public var endIndex: Index { get }
  • Tuyên ngôn

    public func index(after i: Index) -> Index
  • Tuyên ngôn

    public subscript(index: PythonObject) -> PythonObject { get set }
  • Tuyên ngôn

    public struct Iterator : IteratorProtocol
  • Tuyên ngôn

    public func makeIterator() -> Iterator
  • Tuyên ngôn

    public init(booleanLiteral value: Bool)
  • Tuyên ngôn

    public init(integerLiteral value: Int)
  • Tuyên ngôn

    public init(floatLiteral value: Double)
  • Tuyên ngôn

    public init(stringLiteral value: String)
  • Tuyên ngôn

    public init(arrayLiteral elements: PythonObject...)
  • Tuyên ngôn

    public typealias Key = PythonObject
  • Tuyên ngôn

    public typealias Value = PythonObject
  • Tuyên ngôn

    public init(dictionaryLiteral elements: (PythonObject, PythonObject)...)