1. This an interesting usage that I don't know how to call it. See example:
def hehe(tt):
return 'hehe'+tt()
@hehe
def test():
return 'test'
print test
The output is same as:
def hehe(tt):
return 'hehe'+tt()
def test():
return 'test'
test = hehe(test)
print test
Output:
hehetest
P.S: It enables such an easy way to invoke functions by strings! - cloud
From http://www.pythonid.com/html/fenleiwenzhang/lang/20070910/185.html
2. Use "@staticmethod" to realize static method in Python (Python does not have keyword "static"):
class AClass():
@staticmethod
def astatic(): # pay attention that there's no "self" here!
print 'It's a static method!'
AClass.astatic()
Output:
It's a static method!
By the way, there's another way to make a method static with a same output:
class AClass():
def aclassmethod():
print 'It's a static method!'
aclassmethod = classmethod(aclassmethod) # you can write "whatevername = classmethod(aclassmethod)" after Python2.5
From http://wiki.woodpecker.org.cn/moin/PythonEssentialRef7