series of statements which returns some value to caller (it can also be passed zero or more arguments for its use/executionobjects that can be used by all python code without the need of an import statement dir(__builtins__