<s> def f ( ) : <EOL> """<STR_LIT>""" <EOL> print "<STR_LIT:f>" <EOL> return <NUM_LIT:2> <EOL> print f . __call__ ( ) <EOL> print f . __doc__ <EOL> print f . func_doc <EOL> def g ( ) : <EOL> print "<STR_LIT:g>" <EOL> return <NUM_LIT:3> <EOL> print g . __doc__ <EOL> print type ( f ) . __call__ ( f ) <EOL> print type ( f ) . __call__ ( g ) <EOL> print f . __name__ , f . func_name <EOL> f . __name__ = "<STR_LIT>" <EOL> print f . __name__ , f . func_name <EOL> f . func_name = "<STR_LIT:f>" <EOL> print f . __name__ , f . func_name <EOL> print bool ( f ) <EOL> def func_with_defaults ( a , b = <NUM_LIT:1> ) : <EOL> print a , b <EOL> func_with_defaults ( <NUM_LIT:0> ) <EOL> print type ( func_with_defaults . func_code ) <EOL> print func_with_defaults . func_defaults <EOL> print func_with_defaults . __defaults__ <EOL> try : <EOL> func_with_defaults . func_defaults = [ <NUM_LIT:2> ] <EOL> except TypeError as e : <EOL> print e <EOL> def func_without_defaults ( ) : <EOL> pass <EOL> print repr ( func_without_defaults . __defaults__ ) <EOL> print func_without_defaults . func_globals == globals ( ) <EOL> import os <EOL> print os . renames . __globals__ == os . __dict__ <EOL> print os . renames . __globals__ == globals ( ) <EOL> d = { } <EOL> exec "<STR_LIT>" in d <EOL> print d [ "<STR_LIT:foo>" ] . func_globals == d <EOL> func_without_defaults . func_code = func_with_defaults . func_code <EOL> print func_without_defaults . func_name , func_without_defaults . func_code . co_name <EOL> try : <EOL> func_without_defaults ( <NUM_LIT:2> ) <EOL> except TypeError , e : <EOL> print e <EOL> func_without_defaults ( <NUM_LIT:2> , <NUM_LIT:3> ) <EOL> def foo ( ) : <EOL> return <NUM_LIT:0> <EOL> def bar ( ) : <EOL> return <NUM_LIT:1> <EOL> s = <NUM_LIT:0> <EOL> for i in xrange ( <NUM_LIT:1000> ) : <EOL> s += foo ( ) <EOL> if not i % <NUM_LIT:100> : <EOL> foo . func_code , bar . func_code = bar . func_code , foo . func_code <EOL> print s </s>
