Skip to content

Instantly share code, notes, and snippets.

@Nurdok
Last active December 17, 2015 17:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nurdok/5645093 to your computer and use it in GitHub Desktop.
Save Nurdok/5645093 to your computer and use it in GitHub Desktop.
def withenv(name):
def inenv(func):
def new_func(*args, **kwargs):
print 'withenv {}'.format(name)
func(*args, **kwargs)
return new_func
return inenv
def withenv_byname(func):
def new_func(self, *args, **kwargs):
withenv(self.name)(func)(self, *args, **kwargs)
return new_func
class Foo(object):
def __init__(self, name):
self.name = name
@withenv_byname
def run(self):
print 'hello!!'
f = Foo('worker-0')
f.run()
def withenv(name):
def inenv(func):
def new_func(*args, **kwargs):
print 'withenv {}'.format(name)
func(*args, **kwargs)
return new_func
return inenv
class Foo(object):
def __init__(self, name):
self.name = name
def withenv_byname(func):
def new_func(self, *args, **kwargs):
withenv(self.name)(func)(self, *args, **kwargs)
return new_func
@withenv_byname
def run(self):
print 'running...'
if __name__ == '__main__':
f = Foo('my foo')
f.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment