由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - python decorator 调用问题
相关主题
问个PYTHON问题Static variables in function
C#程序调用Windows C++ DLL的问题python 问题
js: 怎么来监听某个function被call的次数?[合集] C问题求助:如何强行从外部访问local static variable?
如何定义 Javascript overload function ?A simple question on Flex
弱问mcc和mex的区别func调用结束时出错
golang的method是后来加的?请问一下Matlab GUI 里面 调用目录下一个network.mat的问题
cyphon,cpython,numba,julia,pypy,为什么都不是主流c++设计一问:如何动态地调用不同的算法的dll ?
请教从java call matlab的问题问一个函数指针的问题,c++
相关话题的讨论汇总
话题: decorator话题: def话题: func话题: wrapper话题: argd
进入Programming版参与讨论
1 (共1页)
j*****k
发帖数: 1198
1
比如有下面一个decorator, 怎么调用?
def decorator(func,aa):
def wrapper(*args, **argd):
if aa:
func(*args, **argd)
return wrapper
@decorator
def myfunc(a1,a2)
or
@decorator(True)
def myfunc(a1,a2)
都不行。
谢谢
k***r
发帖数: 4260
2
把aa定义在decorator外面试试看,比如

aa = False
def mydecorator(func):
def wrapper(*args, **argd):
if aa:
func(*args, **argd)
return wrapper


【在 j*****k 的大作中提到】
: 比如有下面一个decorator, 怎么调用?
: def decorator(func,aa):
: def wrapper(*args, **argd):
: if aa:
: func(*args, **argd)
: return wrapper
: @decorator
: def myfunc(a1,a2)
: or
: @decorator(True)

j*****k
发帖数: 1198
3
别人的decorator是定义好的,没法改
我这儿只是举个例子,想搞清楚怎么调用法

【在 k***r 的大作中提到】
: 把aa定义在decorator外面试试看,比如
:
: aa = False
: def mydecorator(func):
: def wrapper(*args, **argd):
: if aa:
: func(*args, **argd)
: return wrapper
:

i*****f
发帖数: 578
4
This decorator definition seems not make sense to me.
From your dec. definition, it's obvious it takes two arguments: func, aa. So:
@decorator
def f():
...
is transformed to:
decorator(func, aa)(f)
Your decorator is **got** to take exactly two arguments. If this is the case
, seems that the wrapper is not doing what you want.
Are you trying to do something like:
def decorator(aa):
def outer_wrapper(func):
def wrapper(*args, **argd):
if

【在 j*****k 的大作中提到】
: 比如有下面一个decorator, 怎么调用?
: def decorator(func,aa):
: def wrapper(*args, **argd):
: if aa:
: func(*args, **argd)
: return wrapper
: @decorator
: def myfunc(a1,a2)
: or
: @decorator(True)

j*****k
发帖数: 1198
5
yeah, the decorator has two parameters in which the first one is the
function.
just want to know how to use it.
Thanks

So:
case

【在 i*****f 的大作中提到】
: This decorator definition seems not make sense to me.
: From your dec. definition, it's obvious it takes two arguments: func, aa. So:
: @decorator
: def f():
: ...
: is transformed to:
: decorator(func, aa)(f)
: Your decorator is **got** to take exactly two arguments. If this is the case
: , seems that the wrapper is not doing what you want.
: Are you trying to do something like:

d****e
发帖数: 251
6
如果要用@decorator调用,我觉得不能这么写decorator。这种写法你只能
直接
>>>new_func = decorator(func,aa)
这个tutorial写的挺清楚的,
http://www.artima.com/weblogs/viewpost.jsp?thread=240845
看最下面的Decorator Functions with Decorator Arguments.

【在 j*****k 的大作中提到】
: 比如有下面一个decorator, 怎么调用?
: def decorator(func,aa):
: def wrapper(*args, **argd):
: if aa:
: func(*args, **argd)
: return wrapper
: @decorator
: def myfunc(a1,a2)
: or
: @decorator(True)

r****t
发帖数: 10904
7
这个不是 decorator, 只是一个名字叫 decorator 的function,语法上看是一个
closure,
decorator is invoked with the function object as the only argument.

【在 j*****k 的大作中提到】
: yeah, the decorator has two parameters in which the first one is the
: function.
: just want to know how to use it.
: Thanks
:
: So:
: case

1 (共1页)
进入Programming版参与讨论
相关主题
问一个函数指针的问题,c++弱问mcc和mex的区别
Proxy, Decorator, Adapter, and Bridgegolang的method是后来加的?
请教python里面function的arguments的格式问题cyphon,cpython,numba,julia,pypy,为什么都不是主流
java比js难多了请教从java call matlab的问题
问个PYTHON问题Static variables in function
C#程序调用Windows C++ DLL的问题python 问题
js: 怎么来监听某个function被call的次数?[合集] C问题求助:如何强行从外部访问local static variable?
如何定义 Javascript overload function ?A simple question on Flex
相关话题的讨论汇总
话题: decorator话题: def话题: func话题: wrapper话题: argd