¿Cuántos argumentos?

Crea una función que reciba una función func y cuente sus argumentos. Examinar el bytecode de una función usando __code__ está deshabilitado.

Ejemplos

num_args(lambda: "") ➞ 0

num_args(lambda x: "") ➞ 1

num_args(lambda x, y: "") ➞ 2

Notas

  • Todas las expresiones de funciones de prueba aleatorias se construirán usando +, -, * y /.
  • Ninguno de los parámetros de func tendrá valores predeterminados.
  • Todas las funciones se convertirán en un objeto de clase personalizado para evitar el uso de __code__.
  • Si deshabilitar __code__ o eliminar la funcionalidad de las funciones es demasiado estricto, no dudes en dejar un comentario.