小编aus*_*ard的帖子

签署git提交GPG

有没有办法用gpg签署git提交?标签(使用-s而不是代码-a)很容易,似乎提交的功能类似.

git gnupg pgp git-sign

34
推荐指数
2
解决办法
9586
查看次数

访问decorator中的可选参数

我正在尝试访问传递给装饰器中的函数的所有参数,包括可选参数.考虑这个例子:

def decorator(fn):
    def wrapper(*args, **kwargs):
        print 'in wrapper', args, kwargs
        fn(*args, **kwargs)
    return wrapper

@decorator
def myFn(arg1, arg2, arg3=None):
    print 'in myFn', arg1, arg2, arg3

myFn(1,2)
myFn(1,2,3)
Run Code Online (Sandbox Code Playgroud)

如果我运行这个,我会得到:

in wrapper (1, 2) {}
in myFn 1 2 None
in wrapper (1, 2, 3) {}
in myFn 1 2 3
Run Code Online (Sandbox Code Playgroud)

在第一次运行中,由于我没有指定3个参数,因此为了myFn,arg3被定义为None.但是在arg3 == None装饰者里面没有的事实,无论是在args还是kwargs.如果我明确地将它传递给myFn,它将显示在装饰器内部,但如果我使用默认值,则无处可寻.

为什么是这样?它怎么能修复?

python decorator

3
推荐指数
1
解决办法
402
查看次数

标签 统计

decorator ×1

git ×1

git-sign ×1

gnupg ×1

pgp ×1

python ×1