Help me pick an API design (OO vs functional)

Michael Herrmann michael.herrmann at getautoma.com
Wed Mar 27 08:23:57 EDT 2013


On Wednesday, March 27, 2013 12:44:49 PM UTC+1, Chris Angelico wrote:
> ...
> Not seeking to advocate this particular option, but it would be
> possible to make a single wrapper for all your functions to handle the
> focus= parameter:
> 
> def focusable(func):
> 	@functools.wraps(func)
> 	def wrapper(*args,focus=None):
> 		if focus: focus.activate()
> 		return func(*args)
> 	return wrapper
> 
> Then you just decorate all your functions with that:
> 
> def write(string):
>     # do something with the active window

Hi, sure, I wouldn't have copy-pasted the code and of course there are techniques to avoid code duplication. It's not so much what I'm worried about. What I'm worried about is that the concept of window-switching gets "smeared" over several other not-really related concepts such as clicking and typing. I feel it violates orthogonality: http://www.artima.com/intv/dry3.html is the best freely available resource I could find but I think it's best explained in The Pragmatic Programmer http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X.

Michael
www.getautoma.com



More information about the Python-list mailing list