4c93955b7b
Instances of the slice class are passed to __getitem__() on objects when the user indexes them with a slice. In practice the majority of the time (other than passing it on untouched) is to work out what the slice means in the context of an array dimension of a particular length. Since Python 2.3 there has been a method on the slice class, indices(), that takes a dimension length and returns the real start, stop and step, accounting for missing or negative values in the slice spec. This commit implements such a indices() method on the slice class. It is configurable at compile-time via MICROPY_PY_BUILTINS_SLICE_INDICES, disabled by default, enabled on unix, stm32 and esp32 ports. This commit also adds new tests for slice indices and for slicing unicode strings.
13 lines
170 B
Python
13 lines
170 B
Python
# Test slicing of Unicode strings
|
|
|
|
s = "Привет"
|
|
|
|
print(s[:])
|
|
print(s[2:])
|
|
print(s[:5])
|
|
print(s[2:5])
|
|
print(s[2:5:1])
|
|
print(s[2:10])
|
|
print(s[-3:10])
|
|
print(s[-4:10])
|