Python Mapping for Built-In Types

On this page:

Mapping of Slice Built-In Types to Python Types

The Slice built-in types are mapped to Python types as shown in this table:

Slice

Python

byte

int

bool

bool

short

int

int

int

long

int

float

float

double

float

string

str

Although Python supports arbitrary precision in its integer types, the Ice run time validates integer values to ensure they have valid ranges for their declared Slice types.

String Mapping in Python 2

String values returned as the result of a Slice operation (including return values, out parameters, and data members) are always represented as instances of Python's 8-bit string type. These string values contain UTF-8 encoded strings unless the program has installed a string converter, in which case string values use the converter's native encoding instead.

Legal string input values for a remote Slice operation are shown below:

  • None
    Ice marshals an empty string whenever None is encountered.
  • 8-bit string objects
    Ice assumes that all 8-bit string objects contain valid UTF-8 encoded strings unless the program has installed a string converter, in which case Ice assumes that 8-bit string objects use the native encoding expected by the converter.
  • Unicode objects
    Ice converts a Unicode object into UTF-8 and marshals it directly. If a string converter is installed, it is not invoked for Unicode objects.

String Mapping in Python 3

String values returned as the result of a Slice operation (including return values, out parameters, and data members) are always represented as instances of Python's Unicode-based str type. These string values contain UTF-8 encoded strings. The string converter facility is not used in Python 3.

Legal string input values for a remote Slice operation are shown below:

  • None
    Ice marshals an empty string whenever None is encountered.
  • String objects
    Ice converts strings to UTF-8 (if necessary) prior to marshaling.

See Also