Python论坛  - 讨论区

标题:[python-chinese] 请教decorate的机制

2007年05月21日 星期一 17:09

Brightman mr.brightman在gmail.com
星期一 五月 21 17:09:20 HKT 2007

def A(func):
def new_func(*args, **argkw):
result = func(*args, **argkw) #调用原函数继续进行处理
if result:
#做一些额外的工作
return new_result
else:
return result
return new_func
@A
def f(args):pass

args argkw如何就是f的args?如何传进去的

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月21日 星期一 18:33

vcc vcc在163.com
星期一 五月 21 18:33:08 HKT 2007

----- Original Message ----- 
From: "Brightman" <mr.brightman at gmail.com>
To: <python-chinese at lists.python.cn>; <python-cn at googlegroups.com>
Sent: Monday, May 21, 2007 5:09 PM
Subject: [python-chinese] 请教decorate的机制


> def A(func):
> def new_func(*args, **argkw):
> result = func(*args, **argkw) #调用原函数继续进行处理
> if result:
> #做一些额外的工作
> return new_result
> else:
> return result
> return new_func
> @A
> def f(args):pass
> 
> args argkw如何就是f的args?如何传进去的

不是很理解你说的,我估计是写错了吧,应该也是*args, **argkw,
@A
def f(*args,**argkw): pass

Python没有魔力可以把args变成*args, **argkw,它只能老老实实的按你的定义去传参数。

vcc
_

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月21日 星期一 19:42

Brightman mr.brightman在gmail.com
星期一 五月 21 19:42:40 HKT 2007

vcc 写道:
> ----- Original Message ----- 
> From: "Brightman" <mr.brightman在gmail.com>
> To: <python-chinese在lists.python.cn>; <python-cn在googlegroups.com>
> Sent: Monday, May 21, 2007 5:09 PM
> Subject: [python-chinese] 请教decorate的机制
>
>
>   
>> def A(func):
>> def new_func(*args, **argkw):
>> result = func(*args, **argkw) #调用原函数继续进行处理
>> if result:
>> #做一些额外的工作
>> return new_result
>> else:
>> return result
>> return new_func
>> @A
>> def f(args):pass
>>
>> args argkw如何就是f的args?如何传进去的
>>     
呵呵,表述的不清楚。问题:new_func如何得到def f(args)的参数,实际上new_func(*args,**argkw),args argkw就是f函数的参数,想知道它是如何实现的

def A(func):
    def new_func(*args,**argkw)
       print "calling %s with args %s, %s" % (func.__name__, args, argkw)
    return new_func
@A
def f1(user,age):
    pass

> 不是很理解你说的,我估计是写错了吧,应该也是*args, **argkw,
> @A
> def f(*args,**argkw): pass
>
> Python没有魔力可以把args变成*args, **argkw,它只能老老实实的按你的定义去传参数。
>
> vcc
> _
> _______________________________________________
> 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/20070521/0977c86b/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月21日 星期一 23:14

黄毅 yi.codeplayer在gmail.com
星期一 五月 21 23:14:04 HKT 2007

http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/LpyQLearn-4-func#decorator

On 5/21/07, Brightman <mr.brightman at gmail.com> wrote:
>
> def A(func):
> def new_func(*args, **argkw):
> result = func(*args, **argkw) #调用原函数继续进行处理
> if result:
> #做一些额外的工作
> return new_result
> else:
> return result
> return new_func
> @A
> def f(args):pass
>
> args argkw如何就是f的args?如何传进去的
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070521/adf0e1ef/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号