utils.varmeth module¶
Method variant decorator. You specify the desired method variant by a kwarg.
from utils.varmeth import variable
class SomeClass(object):
secret = 42
@variable
def mymethod(self):
print("I am default!")
@mymethod.variant("foo", "foo_too")
def i_foo(self):
print("I foo!")
@mymethod.variant("bar")
def in_bar(self):
print("In bar!")
@variable(alias="foo")
def myfoo(self):
print("foo!")
s = SomeClass()
s.mymethod() # => I am default!
s.mymethod(method="moo") # => I am default!
s.mymethod(method="foo") # => I foo!
s.mymethod(method="foo_too") # => I foo!
s.mymethod(method="bar") # => In bar!
s.mymethod(method="baz") # => AttributeError
s.myfoo() # => foo!
s.myfoo(method="foo") # => foo!
- Original idea:
- Pete Savage
- Implementation:
- Milan Falešník