python µÄº¯ÊýDecorators
DecoratorsÊÇpythonÖбȽÏÄÑÒÔÀí½âµÄ¶«Î÷£¬µ±È»Èç¹ûÄã½Ó´¥¹ýjavaµÄannotation£¬»á·¢ÏÖÕâ¸öDecoratorsÔÚÓï·¨ÉϷdz£µÄÏàËÆ£¬µ«ÊÇÁ½ÕßµÄÉè¼Æ¶¯»úȴûʲô¹²Í¬µã£»
ÕâÀï½²µÄpythonÖеÄdecoratorsÊǶÔpythonÖеÄfunction/method×ö×°ÊΣ¬ÕâЩÐÞÊνöÊǵ±ÉùÃ÷Ò»¸öº¯Êý»òÕß·½·¨µÄʱºò£¬²Å»áÓ¦ÓõĶîÍâµ÷Óá£
pythonÖеÄdecorator·ÖΪÓвÎÊýµÄºÍÎÞ²ÎÊýµÄÁ½ÖÖ£º
@deco
def foo(): pass
µÈ¼Û£ºfoo = deco(foo)
ÓвÎÊýµÄdecoratorµÈ¼Û£º
@deco(deco_args)
def foo(): pass
µÈ¼Û£ºfoo = deco(deco_args)(foo)
´ÓÉÏÃæ×öµÄÁ½¸öµÈ¼Û¿ÉÒÔ¿´³ö£ºdeco±¾ÉíÊÇÒ»¸öº¯Êý£¬Æä½ÓÊܱ»ÐÞÊεķ½·¨×÷Ϊ²ÎÊý£¬deco·µ»ØµÄÓ¦¸ÃÒ²ÊÇÒ»¸öfunction/method£¬Õâ¸ö·µ»ØµÄfunctionÓ¦¸ÃºÍ±»ÐÞÊεÄfunc¾ßÓÐÏàͬµÄ²ÎÊýÁбíºÍ·µ»ØÖµ£¨Ò»°ãÊÇreturn func()£©.
decoratorsµÄÓÃ;¿ÉÒÔÀà±ÈjavaÖеÄaop¸ÅÄΪ·½·¨ÒýÈëͨÓõŦÄÜ£¬ÀýÈçlog¡¢perfomanceµÈ£»ÀýÈ磺£¨eg from core python programming£©
3 from time import time
4
5 def logged(when):
6 def log(f, *args, **kargs):
7 print '''Called:
8 function: %s
9 args: %r
10 kargs: %r''' % (f, args, kargs)
11
12 def pre_logged(f):
13 def wrapper(*args, **kargs):
14 log(f, *args, **kargs)
15 return f(*args, **kargs)
16 return wrapper
17
18 def post_logged(f):
19 def wrapper(*args, **kargs):
20 now = time()
21 try:
22 return f(*args, **kargs)
23 finally:
24 &n
Ïà¹ØÎĵµ£º
ǰ¼¸Ìì¿´µ½ÁËÒ»ÐÐÇó1000µÄ½×³ËµÄPython´úÂ룺
print
reduce
(
lambda
x
,
y
:
x
*
y
,
range
(
1
,
1001
))
Ò»ÏÂ×Ó±»python´úÂëµÄ¾«¼ò
Óë½ô´ÕËùÕÛ·þ£¬¹Ê¶Ô´úÂë½øÐÐÁ˼òµ¥µÄ·ÖÎö¡£
reduceÓërange¶¼ÊÇPythonµÄÄÚÖú¯Êý¡£
range£¨1£¬10 ......
Ïȸø³öÒ»¸öËÄÈËÍŶÔ
Decorator mode
µÄ¶¨Ò壺
¶¯Ì¬µØ
¸øÒ»¸ö
¶ÔÏó
Ìí¼ÓһЩ
¶îÍâµÄÖ°Ôð
¡£
ÔÙÀ´ËµËµÕâ¸öģʽµÄºÃ´¦£ºÈÏÖ¤£¬È¨ÏÞ¼ì²é£¬¼ÇÈÕÖ¾£¬¼ì²é²ÎÊý£¬¼ÓËø£¬µÈµÈµÈµÈ£¬ÕâЩ¹¦ÄܺÍϵͳҵÎñÎ޹أ¬µ«ÓÖÊÇϵͳËù±ØÐëµÄ£¬ËµµÄ¸üÃ÷°×Ò»µã£¬¾ÍÊÇÃæÏò·½ÃæµÄ±à³Ì£¨
AOP
£©¡£
AOP
°ÑÓëÒµÎñÎ޹صĴúÂëÊ®·Ö¸É¾» ......
ÁÐ±í·½·¨£º
·½·¨
˵Ã÷
append( item )
ÔÚÁбíĩβ²åÈ루item £©
count( element )
·µ»ØelementÔÚÁбíÖгöÏֵĴÎÊý
extend( newlist )
½«newlistµÄÔªËØ²åÈëÁбíĩβ
index( element )
·µ»ØelementÔÚÁбíÖеÄË÷Òý£¬Èç¹û²»´æÔÚ£¬ÔòÒý·¢ValueErrorÒì³£
insert( index , item )
ÔÚindex ......
Python±ê×¼¿â-randomÄ£¿é
random Ä£¿é°üº¬Ðí¶àËæ»úÊýÉú³ÉÆ÷. »ù±¾Ëæ»úÊýÉú³ÉÆ÷(»ùÓÚ Wichmann ºÍ Hill , 1982 µÄÊýѧÔËËãÀíÂÛ) ¿ÉÒÔͨ¹ýºÜ¶à·½·¨·ÃÎÊ, Èç Example 2-29 Ëùʾ. 2.17.0.1. Example 2-29. ʹÓà random Ä£¿é»ñµÃËæ»úÊý×Ö File: random-example-1.py import random for i i
¡¡¡¡
random Ä£¿é°üº¬Ðí¶àËæ»úÊýÉ ......
PLYÄ£¿é ÊÇLex/YACCPython µÄʵÏÖ£¬¿ÉÒÔÓÃÀ´ÊµÏÖ´Ê·¨·ÖÎö/Óï·¨·ÖÎö£¬µ«ÈçºÎÓ㬻¹Ã»Ñо¿£¬ÒÔºóÓÐʱ¼äÔÙÑо¿°É£»
Ö÷Ò³: http://www.dabeaz.com/ply/
pycparserÄ£¿é ÊÇʹÓÃPLYÄ£¿é·ÖÎöcÓïÑÔÓï·¨µÄÄ£¿é£¬Ã»Ê²Ã´Îĵµ£¬µ«Ä£¿é×Ô´øÁËÀý×ӺͲâÊÔÓÃÀý¡£
Ö÷Ò³: http://code.google.com/p/pycpa ......