syntax for code blocks

Kiuhnm kiuhnm03.4t.yahoo.it
Tue May 1 10:18:03 EDT 2012


On 5/1/2012 5:27, alex23 wrote:
> On Apr 30, 2:05 am, Peter Pearson<ppear... at nowhere.invalid> wrote:
>> Hey, guys, am I the only one here who can't even guess what
>> this code does? When did Python become so obscure?
>> Thankfully it hasn't. The most Pythonic way to pass around a code
> block is still to use a function.

"Most Pythonic" doesn't mean better, unfortunately.
For instance, assume that you want to write a function that accepts a 
dictionary of callbacks:
 func(some_args, callbacks)
Pythonic way
------------
def when_odd(n):
 pass
def when_prime(n):
 pass
def before_check():
 pass
def after_check():
 pass
func(some_args, {'when_odd' : when_odd,
 'when_prime' : when_prime,
 'before_check' : before_check,
 'after_check' : after_check})
def when_prime(n):
 pass
def when_perfect(n):
 pass
def before_reduction()
 pass
def after_reduction():
 pass
func(some_args, {'when_prime' : when_prime,
 'when_perfect' : when_perfect,
 'before_reduction' : before_reduction,
 'after_reduction' : after_reduction})
My way
------
with func(some_args) << ':dict':
 with when_odd as 'n':
 pass
 with when_prime as 'n':
 pass
 with before_check as '':
 pass
 with after_check as '':
 pass
with func(some_args) << ':dict':
 with when_prime as 'n':
 pass
 with when_perfect as 'n':
 pass
 with before_reduction as '':
 pass
 with after_reduction as '':
 pass
Kiuhnm


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /