circuitpython/tests/micropython/const2.py
Damien George 791b65f4b2 py/modmicropython: Add micropython.const, alias for identity function.
Having a micropython.const identity function, and writing "from micropython
import const" at the start of scripts that use the const feature, allows to
write scripts which are compatible with CPython, and with uPy builds that
don't include const optimisation.

This patch adds such a function and updates the tests to do the import.
2016-09-27 13:34:21 +10:00

35 lines
623 B
Python

# check that consts are not replaced in anything except standalone identifiers
from micropython import const
X = const(1)
Y = const(2)
Z = const(3)
# import that uses a constant
import micropython as X
print(globals()['X'])
# function name that matches a constant
def X():
print('function X', X)
globals()['X']()
# arguments that match a constant
def f(X, *Y, **Z):
pass
f(1)
# class name that matches a constant
class X:
def f(self):
print('class X', X)
globals()['X']().f()
# constant within a class
class A:
C1 = const(4)
def X(self):
print('method X', Y, C1, self.C1)
A().X()