Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Python×°ÊÎÆ÷

Ô­ÎÄ£ºhttp://www.klipdas.com/blog/?p=python-decorator
python×°ÊÎÆ÷½éÉÜ
Python 2.2ÖÐÒýÈëµÄ classmethod() ºÍ staticmethod() ÄÚÖú¯Êý£¬Äã¿ÉÒÔÕâÑùµ÷ÓÃclassmethod()£º
class A:
def foo(self, y):
print y
foo = classmethod(foo)
Ò²¿ÉÒÔÕâÑù£º
class A:
@classmethod
def foo(self, y):
print y
ËäÈ»classmethodÊÇÄÚÖú¯Êý£¬µ«ËüºÍÆÕͨµÄº¯ÊýûÓÐÁ½Ñù£¬Òò´ËÄãÒ²¿ÉÒÔ´´½¨×Ô¼ºµÄº¯Êýת»¯Âß¼­£¬È磺
def mydecorator(func):
print 'mydecorator was called.'
func.name = 'myfun'
return func
¸ÃÐÞÊÎÆ÷½«ÉÔ΢ÐÞ¸ÄÁËÔ­º¯ÊýµÄÂß¼­£ºÊ×ÏÈ´òÓ¡Ò»¶ÎÎÄ×Ö“mydecorator was called.”£¬È»ºó¸øÔ­º¯ÊýÌí¼ÓÁËÒ»¸önameÊôÐÔ£¬ÊôÐÔֵΪ"myfun"£¬Ö®ºóÔÙ½«º¯Êý·Å»Ø£¬Ê¹Ó÷½·¨ºÍµ÷Óýá¹ûÈçÏ£º
class A:
@mydecorator
def foo(self, y):
print y
if __name__ == '__main__':
a = A()
a.foo(1)
ÔËÐнá¹ûΪ£º
mydecorator was called.
1
ÒÔÉϼò½éÎÒÃÇ¿ÉÒÔ´óÖÂÁ˽âÁËpython×°ÊÎÆ÷µÄ×÷Óá£
×°ÊÎÆ÷µÄµ÷ÓÃÂß¼­
ÈçÉÏÒ»½ÚµÄʾÀýÖÐÎÒÃÇ·¢ÏÖ£¬Ê¹ÓÃ×°ÊÎÆ÷µÄʱºòÊÇ@mydecorator£¬»òÕßÊÇfoo=mydecorator(foo)£¬¶ø²»ÊÇ@mydecorator()£¬»òÕßfoo=mydecorator(foo)()¡£ÏÔÈ»£¬ÎÒÃÇÒªµÄ×°ÊÎÆ÷ÊǸöº¯Êý£¬¶ø²»ÊǺ¯ÊýµÄ½á¹û¡£ÒòΪÎÒÃÇÒª½«ÎÒÃÇÒªÐÞÊεĺ¯Êýfoo£¨¼´ÀϺ¯Êý£©´«µÝ¸øÐÞÊκ¯Êýmydecorator£¬²¢ÇÒÐÞÊκ¯ÊýmydecoratorÒ²·µ»ØÒ»¸öк¯Êý£¨ÉÏÒ»µÄк¯ÊýÊÇÔÚÀϺ¯ÊýµÄ»ù´¡ÉÏÌí¼ÓÁËÒ»¸öÊôÐÔ£©¡£
´ø²ÎÊý×°ÊÎÆ÷
ÉÏÒ»½ÚµÄ½éÉÜ×°ÊÎÆ÷µÄµ÷Óùý³Ì£¬ÎÒÃÇ¿ÉÒÔÃ÷°×£¬@mydecoratorÊǸöº¯Êý£¬¶øÇÒÊǸöº¯Êý¾Í¿ÉÒÔ£¬Êµ¼ÊÉÏÊDZØÐëҪʵÏÖ__call__·½·¨µÄ¶ÔÏó¾Í¿ÉÒÔÁË¡£Ò²¾ÍÊÇ˵װÊÎÆ÷¿ÉÒÔ¶¨Òå³ÉʵÏÖÁË__call__·½·¨µÄclassÒ²¿ÉÒÔÊÇÆäËûµÄÈκηµ»Øº¯ÊýµÄ“¶ÔÏ󔣬ºóÕßʵÏֽϸ´ÔÓ£¬µ«¹¦ÄÜÇ¿´ó¡£
ʵÏÖ__call__·½·¨µÄclassʾÀý£º
class mydecorator:
def __init__(self, func):
self.func = func
def __call__(self):
print “mydecorator was called.”
return self.func
ʹÓ÷½·¨Í¬Ç°ÃæµÄʾÀýÒ»Ñù£¬ÒòΪÎÒÃÇ¿ÉÒÔÏñº¯ÊýÒ»Ñùµ÷ÓøÃÀࣺmydecorator()£¬²»Í¬µÄÊÇ£¬¸ÃÀàÊÇÒÔ±»×°Êεĺ¯Êý×÷Ϊ¹¹Ôì²ÎÊý£¬¶ø²»ÊÇ×÷Ϊ__call__µÄ²ÎÊý¡£¸ü¸´ÔÓµÄ×°ÊÎÆ÷£º
def mydecorator(arg):
print “arg is ”, arg
def newdec(func):
print ‘new decor


Ïà¹ØÎĵµ£º

PythonÖеĶÔÏó¡¢±äÁ¿¼°ÒýÓÃ

  ÔÚPythonÖУ¬ÎÒÃÇÖ´Ðбí´ïʽ a = 3£¬Python»áÔõÑù²Ù×÷ÄØ£¿
1¡¢Ê×ÏȻᴴ½¨Ò»¸ö¶ÔÏó±íʾֵ3
2¡¢Èç¹û±äÁ¿a²»´æÔÚ£¬´´½¨±äÁ¿a
3¡¢°Ñ±äÁ¿aÁ¬½Óµ½±íʾ3µÄ¶ÔÏó
ÔÚPythonÖУ¬±äÁ¿ºÍ¶ÔÏó´æ´¢ÔÚ²»Í¬µÄµØ·½£¬Í¨¹ýÖ¸ÕëÁ¬½ÓÆðÀ´...
Ò»¸ö±äÁ¿×ÜÊǺͶÔÏóÁ¬½ÓÆðÀ´£¬²»´æÔÚ²»ºÍ¶ÔÏóÁ¬½ÓµÄ±äÁ¿£¬µ«ÊÇ´óµÄ¶ÔÏó¿ÉÄÜÁ¬½Óµ½±ðµÄ¶ÔÏó¡£ ......

Python¶ÁдÎļþ


PythonÖÐÎļþ²Ù×÷¿ÉÒÔͨ¹ýopenº¯Êý£¬ÕâµÄÈ·ºÜÏñCÓïÑÔÖеÄfopen¡£Í¨¹ýopenº¯Êý»ñȡһ¸öfile object£¬È»ºóµ÷ÓÃread()£¬write()µÈ·½·¨¶ÔÎļþ½øÐжÁд²Ù×÷¡£
1.open
ʹÓÃopen´ò¿ªÎļþºóÒ»¶¨Òª¼ÇµÃµ÷ÓÃÎļþ¶ÔÏóµÄclose()·½·¨¡£±ÈÈç¿ÉÒÔÓÃtry/finallyÓï¾äÀ´È·±£×îºóÄܹرÕÎļþ¡£
file_object = open('thefile.txt' ......

±»ÊèºöµÄÒ»¶ÎPythonÓï·¨

    pythonÌṩÁËÓÐÐò(sequence)ÀàÐÍ£¨×Ö·û´®£¬Ôª×飬ÁÐ±í¶¼ÊÇÓÐÐòÀàÐÍ£©£¬²¢ÇÒÌṩÁËÌØÊâµÄÓï·¨À´·½±ã¶ÔÕâЩÀàÐͽøÐвÙ×÷£¬×î³£ÓõÄÓÐÇÐÆ¬²Ù×÷¡£Í¬Ò»ÓÐÐòÀàÐ͵ĶÔÏóÖ®¼äÖ§³Ö¡±+¡±²Ù×÷·û£¬ÓÃÀ´Á¬³ÉÒ»¸öеÄÓÐÐò¶ÔÏó£¬ÓÐÐò¶ÔÏóÒ²¿ÉÒÔÓëÒ»¸öÕûÊý½øÐÐÏà³Ë£¬µÃµ½Ò»¸öеÄÓÐÐò¶ÔÏó¡£ÔÚµ÷ÊÔµÄʱºò£¬ÎÒ¾­³£Ê¹ÓÃÕâÑù ......

ѧϰ¡¶PythonÓïÑÔÈëÃÅ¡·µÚʮտò¼ÜÓëÓ¦ÓÃ

¹ØÓÚ¿ò¼Ü£¬Ö®Ç°ÌýµÃ±È½Ï¶à£¬ÌرðÊÇÔÚCPyGµÄÓʼþÁбíÉÏ£¬²»¹ý»¹Ã»ÓнӴ¥¹ý¡£
ÕâÒ»ÕÂÎÒ´òËãÂÔ¶Á£¬¼ÓÉÏÕâÁ½ÌìÉíÌå²»ÊÊ£¬¶ÁµÃ¸ü¼ÓÂÔÁË¡£
ÕâÒ»ÕÂÌáµ½µÄ¼¸¸ö¿ò¼ÜÎÒÌý˵µÄÓÐTKinterºÍSWIG¡£SWIG¸ãÁËһϣ¬TKinter¿´È˼ÒÓùý£¬×Ô¼º»¹Ã»ÓÐÓùý¡£¶ÔÕâЩ¿ò¼ÜİÉúµÃºÜ¡£ÒÔºóÅöÉÏÒªÓÃÁËÔÙÈÏÕæÑ§Ñ§¡£
µ½ÏÖÔÚ£¬¶ÔPythonËãÊÇÓÐЩÁ˽âÁË¡£ ......

ʹÓÃPythonÓïÑÔÉè¼Æ»ùÓÚHTMLµÄCÓïÑÔÓï·¨¼ÓÁÁÏÔʾ³ÌÐò

2005-2006ѧÄêµÚ1ѧÆÚ
±à Òë Ô­ Àí 
¿Î ³Ì Éè ¼Æ ±¨ ¸æ
°à¼¶   02¼Æ(¶þ)   
ѧºÅ     19     
ÐÕÃû     ÁõÏþÃ÷     
³É¼¨           
Ö¸µ¼½Ìʦ   ¬³¯»Ô   
Ò»¡¢   Éè¼ÆÄ¿µÄ
¼ÓÉî¶Ô±àÒ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ