首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
V2EX 提问指南
广告
V2EX
›
问与答
[python]获取函数命名空间
geew
·
2013-11-13 13:04:14 +08:00
· 2296 次点击
这是一个创建于 4053 天前的主题,其中的信息可能已经有所发展或是发生改变。
问题:
如何在函数的外部获取到一个函数的命名空间呢? python有提供这个机制吗
如:
# coding: utf8
from functools import wraps
def test_wrapper(func):
@
wraps
(func)
def wrapper(*args, **kwargs):
# get func namespace
# namespace = {'u': 1} 怎么取到这个
print args
print kwargs
return func(*args, **kwargs)
return wrapper
@
test_wrapper
def test(u):
print 'I am test \n'
if __name__ == '__main__':
test(1) # 非关键字调用 只能传到args中, 怎么取到字典的形式呢
test(u=12) # 这样调用可以在kwargs中取到
输出:
(1,)
{}
I am test
()
{'u': 12}
I am test
test
wrapper
kwargs
2 条回复
•
1970-01-01 08:00:00 +08:00
1
binux
2013-11-13 13:52:47 +08:00
1
import inspect
inspect.getcallargs(func, *args, **kwarg)
另:你这个不叫做获得namespace,你还没给参数赋值呢,哪来的空间
2
geew
OP
2013-11-13 14:25:27 +08:00
@
binux
谢谢
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
3428 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms ·
UTC 10:53
·
PVG 18:53
·
LAX 02:53
·
JFK 05:53
Developed with
CodeLauncher
♥ Do have faith in what you're doing.