Polymorfisme Cryptisch

Inleiding tot het onderwerp “Cryptografisch polymorfisme” **Polymorfisme** (van het Griekse polý - “veel” en morphe – “vorm”) in programmeren is een eigenschap van een functie waardoor deze in verschillende contexten kan worden gebruikt zonder het gedrag ervan te veranderen . Zo kan een functie van het ene type worden gebruikt om binnen een ander type te worden aangeroepen, terwijl de oorspronkelijke semantische betekenis behouden blijft. Een noodzakelijke voorwaarde voor het gebruik van een functie als een niet-referentiefunctie (externe functie) is inkapseling. Als de functiecode rechtstreeks wordt benaderd, wordt er gezegd dat deze in sferische code is. De functie kan ook worden gebruikt met de modifiers `__init__`, `__new__` en `__call__` - dit zijn eigenschappen van de decorateur `@staticmethod` en `@classmethod`. In dit geval kunnen we spreken van “statisch polymorf” of “klasse-polymorf”.

Bijvoorbeeld de functie voor het berekenen van de vierkantswortel: ``` def sq_root(x): return x ** 0,5 ``` en de functie voor het berekenen van de parabolische functie:

```py def parabool(coefs): functiecoëfficiënten y = ax^2 + bx + c pass ``` beide functies kunnen met evenveel succes worden gebruikt in een programma, binnen een functie en/of klasse. Ze accepteren argumenten, een retourwaarde en behouden op dezelfde manier het gedrag van de broncode in hun lichaam. Als resultaat van hun implementatie kunnen ze als functies worden beschouwd, d.w.z.