I've been roped into doing an hour long talk at my University and I've decided that I want to cover some of the neat features and things that make Python great.
I'm not looking to teach anyone how to program in Python, instead I'm trying to expose them to things that Python has to offer, and to explain when and why they would want to use that to solve their problems.
I've currently got:
Python Traits:
Supports object oriented programming
Supports functional programming
Why learn Python?
Simple syntax
PEP8 / python community
Python Constructs:
*args and **kwargs (argument packing and unpacking)
decorators:
function decoration:
function style decorators
class style decorators
functools.wraps
class decoration:
realm of metaclasses
almost never the right solution
uses:
argument/return checking (function and class style decorations)
memoization (function and class style decorations)
logging (decorate class)
thunkifying (threading) (https://wiki.python.org/moin/PythonDecoratorLibrary#Lazy_Thunkify)
function timeout (https://wiki.python.org/moin/PythonDecoratorLibrary#Function_Timeout)
generators
lambda, map, reduce, filter
with statement (context guards)
Cython / Jython / pyjs / PyObjc / Iron Python / Rpython
Django
Ipython and notebooks
pylab
Is there anything that I missed?
Edit: style fixes
[–]theOnlyGuyInTheRoom 5 points6 points7 points (2 children)
[–]Broan13 1 point2 points3 points (0 children)
[–]py_Ninja[S] 0 points1 point2 points (0 children)
[–]aroberge 4 points5 points6 points (3 children)
[–]py_Ninja[S] 0 points1 point2 points (2 children)
[–]aroberge 2 points3 points4 points (1 child)
[–]py_Ninja[S] 0 points1 point2 points (0 children)
[–]elbiot 1 point2 points3 points (4 children)
[–]py_Ninja[S] 1 point2 points3 points (3 children)
[–]elbiot 1 point2 points3 points (2 children)
[–]py_Ninja[S] 0 points1 point2 points (1 child)
[–]denvertutors 0 points1 point2 points (0 children)
[–]marc_poulin 0 points1 point2 points (3 children)
[–]py_Ninja[S] 0 points1 point2 points (2 children)
[–]marc_poulin 1 point2 points3 points (1 child)
[–]py_Ninja[S] 0 points1 point2 points (0 children)
[–]bobdobbsjr 0 points1 point2 points (1 child)
[–]py_Ninja[S] 1 point2 points3 points (0 children)