I'm sorry about the typos, but that doesn't seem to be what the issue
is (I typed it into the textbox rather carelessly, I apologize :-( ).
It seems to be an issue with passing the decorator an argument:
Given:
def decorator(arg):
def raise_exception(fn):
raise Exception
return raise_exception
If you pass the decorator an argument, it doesn't work as expected
(but if you neglect the argument, it works, even though the decorator
_expects_ an argument.
That is,
class classA(object):
@decorator('argument')
def some_method(self):
print "An exception should be raised when I'm called, but not
when I'm defined"
Will result in an exception on definition.
class classB(object):
@decorator
def some_method(self):
print "An exception should be raised when I'm called, but not
when I'm defined"
Gets defined, and executing
b = classB()
b.some_method()
>>> b = classB()
>>> b.some_method()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in raise_exception
Exception
works as expected, even though decorator is expecting an argument...
--
http://mail.python.org/mailman/listinfo/python-list