PythonÖ®ÃÀ DecoratorÉîÈëÏê½â(Ò»)
There should be one—--and preferably only one –--obvious way to do it.
----Õª×ÔThe Zen of Python, by Time Peters
һЩÍùÊÂ
ÔÚÕýʽ½øÈëDecorator»°Ìâ֮ǰ£¬ÇëÔÊÐíÎÒ½²Ò»¸öС¹ÊÊ¡£
ÔÚ×î½üµÄÏîÄ¿¿ª·¢¹ý³ÌÖУ¬Ò»Î»Í¬ÊÂÔÚ¶ÁÎҵĴúÂëµÄʱºò£¬Ìá³öÖÊÒÉ£¬ÎªÊ²Ã´Í¬ÑùµÄÑéÖ¤´úÂëÒªÖØ¸´³öÏÖÔÚ·þÎñ½Ó¿ÚÖÐÄØ£¿
Èçij·þÎñ½Ó¿ÚÊÇÓÎÏ·ÖеÄÍæ¼ÒÏ뽨Ô콨Öþ£º
def build(user, build_name):
if not is_user_valid(user):
redirect("/auth/login/")
return False
#do something here
return create_building(build_name)
ÔÚbuildÕâ¸ö·½·¨ÖУ¬Ç°3ÐÐÊÇÓÃÀ´¼ì²âÍæ¼ÒÊÇ·ñÒѾÑéÖ¤¹ýµÄ£¬Èç¹ûÊÇ·ÇÑéÖ¤µÄÍæ¼Ò£¬¾ÍÖØ¶¨Ïòµ½µÇÂ½Ò³Ãæ£»Èç¹ûÊÇÑéÖ¤¹ýµÄÍæ¼Ò£¬¾Í¸øËû½¨ÔìËûÏëÒªµÄ½¨Öþ¡£
ËûÖ¸³öÕâÑùµÄ3ÐÐÑéÖ¤´úÂë(ËäÈ»ÒѾºÜ¶Ì)½«»á³öÏÖÈÎÒâÒ»¸öÍæ¼Ò·þÎñ½Ó¿ÚÖЗ—Éý¼¶½¨Öþ¡¢²ð½¨Öþ¡¢ÉõÖÁÊÇÆµ·±µÄÁÄÌ죬ÎÒ˵ÕâÖ»ÊÇCtrl+C¡¢Ctrl+VµÄʱ¼ä°¡£¬µ«ÊÇÄÇʱºòÎÒÉîÏ룬Èç¹ûÏÖÔÚÐèÇóÓб䶯£¬ÒªÔÚÔÀ´µÄÑé֤ʧ°ÜµÄÇé¿öÏ£¬Ð´ÈÕÖ¾£¬ÄÇÔÀ´µÄ3ÐдúÂë¾Í±ä³É4ÐУº
if not is_user_valid(user):
redirect("/auth/login/")
log_warning(" %s is trying to enter without permission!" %(user["name"]))
return False
¸üÍ´¿àµÄÊÇ£¬ÄãÒªÔÚÿ¸ö³öÏÖif not is_u
Ïà¹ØÎĵµ£º
python µÄÄÚǶtimeÄ£°å·Ò뼰˵Ã÷
Ò»¡¢¼ò½é
timeÄ£¿éÌṩ¸÷ÖÖ²Ù×÷ʱ¼äµÄº¯Êý
˵Ã÷£ºÒ»°ãÓÐÁ½ÖÖ±íʾʱ¼äµÄ·½Ê½:
µÚÒ»ÖÖÊÇʱ¼ä´ÁµÄ·½Ê½(Ïà¶ÔÓÚ1970.1.1 00:00:00ÒÔÃë¼ÆËãµÄÆ«ÒÆÁ¿),ʱ¼ä´ÁÊÇΩһµÄ
µÚ¶þÖÖÒÔÊý× ......
ÆäʵÒì³£¾ÍÊDz»Õý³££¬¾ÍÊDz»ºÍÎÒÃÇÏëÏóÒ»ÑùÈ¥Ö´ÐС£ËüÊÇÒòΪ³ÌÐò³öÏÖÁË´íÎó¶øÔÚÕý³£¿ØÖÆÁ÷ÒÔÍâ²ÉÈ¡µÄÐÐΪ¡£Python³öÏÖÒì³££¬¾ÍÊÇÒòΪ¼ì²éÁËÒ»¸ö´íÎóʱ£¬Python½âÊÍÆ÷ÎÞ·¨¼ÌÐø¼ÌÐøÖ´ÐÐÏÂÈ¥£¬ÕâʱºòÅ׳öÁËÒì³£¡£ÍùÍùÕâ¸ö´íÎó·ÖΪÓï·¨ÉϺÍÂß¼ÉÏ(²»Éó¤Ëµ¸ÅÄ-_-! )£¬¿´¿´¼¸¸öÀý×Ó£¬×ܽáһϣº
1¡¢NameError£º³¢ÊÔ·ÃÎÊÒ»¸öÎ ......
Python µÄÒì³£´¦Àí»úÖÆ
Python´úÂë
try:
raise Exception("a", "b")
except Exception,e:
print e
finally:
print "final"
('a', ......
#coding=utf-8
from math import sqrt,cos,sin
import Image, ImageDraw
class SpireShape(object):
def __init__(self, draw):
self.draw = draw
self.line_width = 1
& ......
¡¾windows+python3.1.2¡¿
·¢²¼pythonÓ¦ÓóÌÐòÊǸöºÜÂé·³µÄÊ£¬ÒòΪ<1>ÎÞ·¨±àÒëÔÉúcode<2>ÿ¸ö°æ±¾µÄ×Ö½ÚÂ벻ͬ<3>Èç¹ûÖ±½ÓÉÏÔ´Âë»áËðº¦×Ô¼ºµÄÀûÒæ——µÈµÈ
·½·¨1——ÊÖ¶¯´ò°ü
Ôõô´ò°üÄØ£¿Ò»¸öpythonÎļþ¼ÐÒª¶þÊ®¶àMB°¡£¡
yes£¡ÎÒÃǾÍÒªÇåÀíÎÞÓõĶ«Î÷£¡
ÏÈдһ¸öwin.pyÎļþ£º ......