Đối tượng Python

@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 thành viên động. Bất kỳ quyền truy cập thành viên nào như object.foo sẽ tự động yêu cầu thời gian chạy Python cho thành viên có tên được chỉ định trong đối tượng này.

PythonObject được chuyển đến và trả về từ tất cả các lệnh gọi hàm và tham chiếu thành viên của Python. Nó hỗ trợ các toán tử so sánh và số học Python tiêu chuẩn.

Trong nội bộ, PythonObject được triển khai dưới dạng con trỏ được tính tham chiếu tới API PyObject của Python C.

  • Mô tả bằng văn bản về PythonObject này, được tạo 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 phiên bản mới từ giá trị PythonConvertible .

    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ề phiên bản có thể gọi được của PythonObject này. Khi được gọi, kết quả sẽ đưa ra lỗi Swift nếu hàm Python cơ bản đưa ra ngoại lệ Python.

    Tuyên ngôn

    var throwing: ThrowingPythonObject { get }
  • Trả về trình bao bọc PythonObject 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 phần tử tương ứng với các giá trị PythonConvertible được chỉ định đại diện cho một khóa.

    Ghi chú

    Điều này tương đương với object[key] trong Python.

    Tuyên ngôn

    subscript(key: PythonConvertible...) -> PythonObject { get nonmutating set }
  • Chuyển đổi thành 2-tuple.

    Tuyên ngôn

    var tuple2: (PythonObject, PythonObject) { get }
  • Chuyển đổi thành 3-tuple.

    Tuyên ngôn

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

    Tuyên ngôn

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

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

    self phải là một Python có thể gọi được.

    Tuyên ngôn

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

    Thông số

    args

    Đối số vị trí cho Python có thể gọi được.

  • Gọi self với các đối số được chỉ định.

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

    self phải là một Python có thể gọi được.

    Tuyên ngôn

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

    Thông số

    args

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

  • 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)...)