2006年11月20日 星期一 16:02
ÓÐЩ´ÓJavaת¹ýÀ´µÄÅóÓÑ£¬¿ÉÄÜ»á±È½Ï»³ÄîJavaµÄÒì³£¶¨Ò壬Ҳ¾ÍÊÇ˵£¬¿ÉÒÔÔÚ¶¨ÒåÒ»¸öº¯Êýʱ£¬ÉùÃ÷Ëü¿ÉÄÜÅ׳öµÄÒì³£¡£ÒòΪÎÒ¼¸ºõûÓÐJavaÓïÑÔµÄʹÓþÑ飨Èç¹û˵»á°²×°tomcatºÍEclipse¾ÍËãJava¸ßÊֵϰ£¬ÄÇÎÒÊÇ£ºP£©£¬Òâʶ²»µ½ÕâÖÖ·½Ê½µÄÓÅµã¡£Ôø¾ÓкܾúöÂÔÁËËü¡£µ«ÊÇÔÚ¶Á¹ýһЩPythonÊé¼®ºó£¬ÎÒ·¢ÏÖ£¬ÕâÖÖÒì³£ÉùÃ÷¶ÔPythonÒ²ÊǺÜÓÐÒâÒåµÄ¡£ÓÚÊÇ£¬ÎÒÊÔ×ÅдÁËÒ»¸ödecorator
À´ÊµÏÖÕâ¸ö¹¦ÄÜ¡£ÊÂʵ֤Ã÷£¬PythonÀïËäȻûÓÐÓï·¨¼¶±ðµÄº¯ÊýÒì³£ÉùÃ÷£¬µ«ÊÇʵÏÖÕâÑùµÄ¹¦Äܷdz£¼òµ¥¡£ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄʾÀý£º
#-*- coding:utf-8 -*-
class ExpCollFunction(object):
def __init__(self, fun, *exps):
self.exps = tuple(exps)
self.fun = fun
def __call__(self, *args):
return self.fun(*args)
class ExpInclude(object):
def __init__(self, *exps):
self.exps = []
self.exps.extend(exps)
def __call__(self, fun):
return ExpCollFunction(fun, *self.exps)
@ExpInclude(Exception)
def foo():
print "foo function"
raise Exception()
ExpCollFunctionºÍExpIncludeÀàÐÍÊÇͨÓõ쬶¨Òå³ÉÒ»¸ö¶ÀÁ¢µÄÄ£¿é¾Í¿ÉÒÔʹÓá£Ö»ÒªÔÚ¶¨Òåijһ¸öº¯Êýʱ£¬ÏñʾÀýÖеÄfooÒ»Ñù£¬ÒÔExpIncludeÐÞÊΣ¬²¢ÔÚExpIncludeµÄ²ÎÊýÖд«ÈëÕâ¸öº¯Êý¿ÉÄÜÅ׳öµÄÒì³£ÀàÐͼ´¿É¡£³ýÁËdecorator
£¬ÕâÖÖ»¹¼¼ÇɵÃÒæÓÚPythonµÄÁíÍâÁ½¸öÓï·¨£¬Ò»¸öÊǶÔÏóµÄ¿Éµ÷ÓýӿÚ__call__£¬Ò»¸öÊÇexcept¿ÉÒÔ²¶»ñÒÔtupleÔ¼ÊøµÄÒ»×éÒì³£ÀàÐÍ¡£
ÀýÈ磬ÎÒÔÚidle shellÖÐÕâÑùÖ´ÐдúÂ룺
>>> try:
foo()
except foo.exps:
print "foo exception"
foo function
foo exception
ÁíÍ⣬һ¸ö²¶»ñ×Ô¶¨Òì³£µÄ¼òµ¥·½·¨ÊÇ£¬½«×Ô¶¨ÒåÒ쳣ͨ¹ý¶à¼Ì³ÐµÄ·½Ê½½øÐзÖÀ࣬ÕâÑù£¬²¶»ñʱ¿ÉÒÔ¼òµ¥µÄ½Ø»ñijһÖÖÒì³£µÄ×ÓÀ࣬¾ÍÏñGMailÀïµÄÓʼþ±êÇ©¡£ÕâÖÖ·½Ê½¿ÉÒԲμûBjarne
StroustrupµÄ¡¶C++ÓïÑÔµÄÉè¼ÆÓëÑÝ»¯¡·¡£
ÎÞÂÛÔÚPython»¹ÊÇJavaÖУ¬Ê¹ÓÃÒì³£ÉùÃ÷£¬ÒªÑϸñÈ·ÈÏÉùÃ÷µÄÒì³£ÁбíÓ뺯ÊýÖпÉÄÜÅ׳öµÄÒì³£ÕýÈ·¶ÔÓ¦£¬·ñÔòÖ»»áÊÊµÃÆä·´¡£
--
»¶Ó·ÃÎÊ£º
http://blog.csdn.net/ccat
ÁõöÎ
March.Liu
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061120/b52e7650/attachment-0001.html
2006年11月20日 星期一 16:08
²»´í,ÓÐÊÕ»ñ!лл. 2006/11/20, ÁõöÎ <march.liu在gmail.com>: > > ÓÐЩ´ÓJavaת¹ýÀ´µÄÅóÓÑ£¬¿ÉÄÜ»á±È½Ï»³ÄîJavaµÄÒì³£¶¨Ò壬Ҳ¾ÍÊÇ˵£¬¿ÉÒÔÔÚ¶¨ÒåÒ»¸öº¯Êýʱ£¬ÉùÃ÷Ëü¿ÉÄÜÅ׳öµÄÒì³£¡£ÒòΪÎÒ¼¸ºõûÓÐJavaÓïÑÔµÄʹÓþÑ飨Èç¹û˵»á°²×°tomcatºÍEclipse¾ÍËãJava¸ßÊֵϰ£¬ÄÇÎÒÊÇ£ºP£©£¬Òâʶ²»µ½ÕâÖÖ·½Ê½µÄÓÅµã¡£Ôø¾ÓкܾúöÂÔÁËËü¡£µ«ÊÇÔÚ¶Á¹ýһЩPythonÊé¼®ºó£¬ÎÒ·¢ÏÖ£¬ÕâÖÖÒì³£ÉùÃ÷¶ÔPythonÒ²ÊǺÜÓÐÒâÒåµÄ¡£ÓÚÊÇ£¬ÎÒÊÔ×ÅдÁËÒ»¸ödecorator > À´ÊµÏÖÕâ¸ö¹¦ÄÜ¡£ÊÂʵ֤Ã÷£¬PythonÀïËäȻûÓÐÓï·¨¼¶±ðµÄº¯ÊýÒì³£ÉùÃ÷£¬µ«ÊÇʵÏÖÕâÑùµÄ¹¦Äܷdz£¼òµ¥¡£ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄʾÀý£º > > #-*- coding:utf-8 -*- > > class ExpCollFunction(object): > def __init__(self, fun, *exps): > self.exps = tuple(exps) > self.fun = fun > def __call__(self, *args): > return self.fun (*args) > > class ExpInclude(object): > def __init__(self, *exps): > self.exps = [] > self.exps.extend(exps) > def __call__(self, fun): > return ExpCollFunction(fun, *self.exps) > > @ExpInclude(Exception) > def foo(): > print "foo function" > raise Exception() > > > ExpCollFunctionºÍExpIncludeÀàÐÍÊÇͨÓõ쬶¨Òå³ÉÒ»¸ö¶ÀÁ¢µÄÄ£¿é¾Í¿ÉÒÔʹÓá£Ö»ÒªÔÚ¶¨Òåijһ¸öº¯Êýʱ£¬ÏñʾÀýÖеÄfooÒ»Ñù£¬ÒÔExpIncludeÐÞÊΣ¬²¢ÔÚExpIncludeµÄ²ÎÊýÖд«ÈëÕâ¸öº¯Êý¿ÉÄÜÅ׳öµÄÒì³£ÀàÐͼ´¿É¡£³ýÁËdecorator > £¬ÕâÖÖ»¹¼¼ÇɵÃÒæÓÚPythonµÄÁíÍâÁ½¸öÓï·¨£¬Ò»¸öÊǶÔÏóµÄ¿Éµ÷ÓýӿÚ__call__£¬Ò»¸öÊÇexcept¿ÉÒÔ²¶»ñÒÔtupleÔ¼ÊøµÄÒ»×éÒì³£ÀàÐÍ¡£ > ÀýÈ磬ÎÒÔÚidle shellÖÐÕâÑùÖ´ÐдúÂ룺 > >>> try: > foo() > except foo.exps: > print "foo exception" > > > foo function > foo exception > > ÁíÍ⣬һ¸ö²¶»ñ×Ô¶¨Òì³£µÄ¼òµ¥·½·¨ÊÇ£¬½«×Ô¶¨ÒåÒ쳣ͨ¹ý¶à¼Ì³ÐµÄ·½Ê½½øÐзÖÀ࣬ÕâÑù£¬²¶»ñʱ¿ÉÒÔ¼òµ¥µÄ½Ø»ñijһÖÖÒì³£µÄ×ÓÀ࣬¾ÍÏñGMailÀïµÄÓʼþ±êÇ©¡£ÕâÖÖ·½Ê½¿ÉÒԲμûBjarne > StroustrupµÄ¡¶C++ÓïÑÔµÄÉè¼ÆÓëÑÝ»¯¡·¡£ > ÎÞÂÛÔÚPython»¹ÊÇJavaÖУ¬Ê¹ÓÃÒì³£ÉùÃ÷£¬ÒªÑϸñÈ·ÈÏÉùÃ÷µÄÒì³£ÁбíÓ뺯ÊýÖпÉÄÜÅ׳öµÄÒì³£ÕýÈ·¶ÔÓ¦£¬·ñÔòÖ»»áÊÊµÃÆä·´¡£ > > -- > »¶Ó·ÃÎÊ£º > http://blog.csdn.net/ccat > > ÁõöÎ > March.Liu > > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20061120/a9cd7b4e/attachment.htm
2006年11月20日 星期一 18:27
def foo():
print "foo function"
raise Exception()
foo.exps = (Exception,)
# KISS
--
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061120/974f1cf5/attachment.htm
2006年11月20日 星期一 21:30
ÊÔÑéÁËһϣ¬ÕâÖÖ·½·¨ÊÇ¿ÉÐеģ¬ÏÔÈ»ÕâÑù¸ü¼ò¶Ì£¬Ò²ºÜÇåÎú¡£Èç¹ûÒ»¶¨ÒªÇ¿ÖÆÔ¼¶¨£¬Ò²¿ÉÒÔ°ÑÎÒµÄÕâ¸ö¹ý³Ì¼ò»¯Îª£º
class ExpInclude(object):
def __init__(self, *exps):
self.exps = tuple(exps)
def __call__(self, fun):
fun.exps = self.exps
return fun
¶àлyi huang¡£
2006/11/20, yi huang <yi.codeplayer在gmail.com>:def foo():
print "foo function"
raise Exception()
foo.exps = (Exception,)
ÔÚ06-11-20£¬ÁõöÎ <march.liu在gmail.com> дµÀ£º
>
> ÓÐЩ´ÓJavaת¹ýÀ´µÄÅóÓÑ£¬¿ÉÄÜ»á±È½Ï»³ÄîJavaµÄÒì³£¶¨Ò壬Ҳ¾ÍÊÇ˵£¬¿ÉÒÔÔÚ¶¨ÒåÒ»¸öº¯Êýʱ£¬ÉùÃ÷Ëü¿ÉÄÜÅ׳öµÄÒì³£¡£ÒòΪÎÒ¼¸ºõûÓÐJavaÓïÑÔµÄʹÓþÑ飨Èç¹û˵»á°²×°tomcatºÍEclipse¾ÍËãJava¸ßÊֵϰ£¬ÄÇÎÒÊÇ£ºP£©£¬Òâʶ²»µ½ÕâÖÖ·½Ê½µÄÓÅµã¡£Ôø¾ÓкܾúöÂÔÁËËü¡£µ«ÊÇÔÚ¶Á¹ýһЩPythonÊé¼®ºó£¬ÎÒ·¢ÏÖ£¬ÕâÖÖÒì³£ÉùÃ÷¶ÔPythonÒ²ÊǺÜÓÐÒâÒåµÄ¡£ÓÚÊÇ£¬ÎÒÊÔ×ÅдÁËÒ»¸ödecorator
> À´ÊµÏÖÕâ¸ö¹¦ÄÜ¡£ÊÂʵ֤Ã÷£¬PythonÀïËäȻûÓÐÓï·¨¼¶±ðµÄº¯ÊýÒì³£ÉùÃ÷£¬µ«ÊÇʵÏÖÕâÑùµÄ¹¦Äܷdz£¼òµ¥¡£ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄʾÀý£º
>
> #-*- coding:utf-8 -*-
>
> class ExpCollFunction(object):
> def __init__(self, fun, *exps):
> self.exps = tuple(exps)
> self.fun = fun
> def __call__(self, *args):
> return self.fun (*args)
>
> class ExpInclude(object):
> def __init__(self, *exps):
> self.exps = []
> self.exps.extend(exps)
> def __call__(self, fun):
> return ExpCollFunction(fun, *self.exps)
>
> @ExpInclude(Exception)
> def foo():
> print "foo function"
> raise Exception()
>
>
> ExpCollFunctionºÍExpIncludeÀàÐÍÊÇͨÓõ쬶¨Òå³ÉÒ»¸ö¶ÀÁ¢µÄÄ£¿é¾Í¿ÉÒÔʹÓá£Ö»ÒªÔÚ¶¨Òåijһ¸öº¯Êýʱ£¬ÏñʾÀýÖеÄfooÒ»Ñù£¬ÒÔExpIncludeÐÞÊΣ¬²¢ÔÚExpIncludeµÄ²ÎÊýÖд«ÈëÕâ¸öº¯Êý¿ÉÄÜÅ׳öµÄÒì³£ÀàÐͼ´¿É¡£³ýÁËdecorator
> £¬ÕâÖÖ»¹¼¼ÇɵÃÒæÓÚPythonµÄÁíÍâÁ½¸öÓï·¨£¬Ò»¸öÊǶÔÏóµÄ¿Éµ÷ÓýӿÚ__call__£¬Ò»¸öÊÇexcept¿ÉÒÔ²¶»ñÒÔtupleÔ¼ÊøµÄÒ»×éÒì³£ÀàÐÍ¡£
> ÀýÈ磬ÎÒÔÚidle shellÖÐÕâÑùÖ´ÐдúÂ룺
> >>> try:
> foo()
> except foo.exps:
> print "foo exception"
>
>
> foo function
> foo exception
>
> ÁíÍ⣬һ¸ö²¶»ñ×Ô¶¨Òì³£µÄ¼òµ¥·½·¨ÊÇ£¬½«×Ô¶¨ÒåÒ쳣ͨ¹ý¶à¼Ì³ÐµÄ·½Ê½½øÐзÖÀ࣬ÕâÑù£¬²¶»ñʱ¿ÉÒÔ¼òµ¥µÄ½Ø»ñijһÖÖÒì³£µÄ×ÓÀ࣬¾ÍÏñGMailÀïµÄÓʼþ±êÇ©¡£ÕâÖÖ·½Ê½¿ÉÒԲμûBjarne
> StroustrupµÄ¡¶C++ÓïÑÔµÄÉè¼ÆÓëÑÝ»¯¡·¡£
> ÎÞÂÛÔÚPython»¹ÊÇJavaÖУ¬Ê¹ÓÃÒì³£ÉùÃ÷£¬ÒªÑϸñÈ·ÈÏÉùÃ÷µÄÒì³£ÁбíÓ뺯ÊýÖпÉÄÜÅ׳öµÄÒì³£ÕýÈ·¶ÔÓ¦£¬·ñÔòÖ»»áÊÊµÃÆä·´¡£
>
> --
> »¶Ó·ÃÎÊ£º
> http://blog.csdn.net/ccat
>
> ÁõöÎ
> March.Liu
>
--
»¶Ó·ÃÎÊ£º
http://blog.csdn.net/ccat
ÁõöÎ
March.Liu
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061120/4a0c085d/attachment.html
Zeuux © 2025
京ICP备05028076号