.. Preamble section inserted into generated output Positional-only Parameters -------------------------- To save code size, many functions that accept keyword arguments in CPython only accept positional arguments in MicroPython. MicroPython marks positional-only parameters in the same way as CPython, by inserting a ``/`` to mark the end of the positional parameters. Any function whose signature ends in ``/`` takes *only* positional arguments. For more details, see `PEP 570 `_. Example ~~~~~~~ For example, in CPython 3.4 this is the signature of the constructor ``socket.socket``:: socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None) However, the signature documented in :func:`MicroPython` is:: socket(af=AF_INET, type=SOCK_STREAM, proto=IPPROTO_TCP, /) The ``/`` at the end of the parameters indicates that they are all positional-only in MicroPython. The following code works in CPython but not in most MicroPython ports:: import socket s = socket.socket(type=socket.SOCK_DGRAM) MicroPython will raise an exception:: TypeError: function doesn't take keyword arguments The following code will work in both CPython and MicroPython:: import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)