To print the source code of a Python object use
inspect. Note that this won't work for built-in objects nor for objects defined interactively. For these you will need other methods explained later.
Here's how to print the source code of the method
randint from the
import random import inspect print(inspect.getsource(random.randint)) # Output: # def randint(self, a, b): # """Return random integer in range [a, b], including both end points. # """ # # return self.randrange(a, b+1)
To just print the documentation string
print(inspect.getdoc(random.randint)) # Output: # Return random integer in range [a, b], including both end points.
Print full path of the file where the method
random.randint is defined:
print(inspect.getfile(random.randint)) # c:\Python35\lib\random.py print(random.randint.__code__.co_filename) # equivalent to the above # c:\Python35\lib\random.py
If an object is defined interactively
inspect cannot provide the source code but you can use
# define a new function in the interactive shell def add(a, b): return a + b print(add.__code__.co_filename) # Output: <stdin> import dill print dill.source.getsource(add) # def add(a, b): return a + b
The source code for Python's built-in functions is written in c and can only be accessed by looking at the Python's source code (hosted on Mercurial or downloadable from https://www.python.org/downloads/source/).
print(inspect.getsource(sorted)) # raises a TypeError type(sorted) # <class 'builtin_function_or_method'>