woceshiyong8 发表于 2017-4-23 08:58:30

Amazing Python 3: "@"

  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
页: [1]
查看完整版本: Amazing Python 3: "@"