tiempo real matrices graficos grafico graficas graficar ejes coordenadas barras python python-internals

real - ¿Encontrar el código fuente para las funciones incorporadas de Python?



matplotlib ejes (6)

Aquí hay una respuesta del libro de cocina para complementar la respuesta de @Chris , CPython se ha movido a GitHub y el repositorio de Mercurial ya no se actualizará:

  1. Instala Git si es necesario.
  2. git clone https://github.com/python/cpython.git

  3. El código se cpython un subdirectorio llamado cpython -> cd cpython

  4. Digamos que estamos buscando la definición de print() ...
  5. egrep --color=always -R ''print'' | less -R
  6. Aha! Ver Python/bltinmodule.c -> builtin_print()

Disfrutar.

Posible duplicado:
Acerca de python construido en el método sort ()

¿Hay alguna manera de ver cómo funcionan las funciones integradas en python? No me refiero solo a cómo usarlos, sino también cómo fueron construidos, ¿qué código está ordenado o enumerado, etc.?


Como Python es de código abierto, puedes leer el código fuente .

Para averiguar en qué archivo se implementa un módulo o función en particular, generalmente puede imprimir el atributo __file__ . Alternativamente, puede usar el módulo de inspect ; consulte la sección Recuperación del código fuente en la documentación de inspect .

Para las clases y métodos incorporados, esto no es tan sencillo ya que inspect.getfile e inspect.getsource devolverán un error de tipo que indica que el objeto está incorporado. Sin embargo, muchos de los tipos incorporados se pueden encontrar en el subdirectorio Objects del tronco de origen de Python . Por ejemplo, consulte here para la implementación de la clase enumerate o here para la implementación del tipo de list .


El shell iPython hace esto fácil: function? le dará la documentación. function?? muestra también el código. PERO esto solo funciona para funciones puras de python.

Entonces siempre puedes download el código fuente para el (c) Python.

Si le interesan las implementaciones pythonic de la funcionalidad central, eche un vistazo a la fuente PyPy .



simplemente puede usar el comando help() para obtener ayuda acerca de funciones incorporadas y su código.

por ejemplo: si quiere ver el código de str (), simplemente escriba - help(str)

volverá así,

>>> help(str) Help on class str in module __builtin__: class str(basestring) | str(object='''') -> string | | Return a nice string representation of the object. | If the argument is a string, the return value is the same object. | | Method resolution order: | str | basestring | object | | Methods defined here: | | __add__(...) | x.__add__(y) <==> x+y | | __contains__(...) | x.__contains__(y) <==> y in x | | __eq__(...) | x.__eq__(y) <==> x==y | | __format__(...) | S.__format__(format_spec) -> string | | Return a formatted version of S as described by format_spec. | | __ge__(...) | x.__ge__(y) <==> x>=y | | __getattribute__(...) -- More --


Tuve que buscar un poco para encontrar la fuente de las siguientes Built-in Functions ya que la búsqueda arrojaría miles de resultados. (Buena suerte buscando a cualquiera de ellos para encontrar su origen)

De todos modos, todas esas funciones se definen en bltinmodule.c funciones comienzan con builtin_{functionname}

Fuente incorporada: https://github.com/python/cpython/blob/master/Python/bltinmodule.c