gpt4 book ai didi

python - 按变量声明的顺序检索 locals() - python

转载 作者:行者123 更新时间:2023-12-01 15:43:24 24 4
gpt4 key购买 nike

例如,

a = 1

b = 2

c = 3

调用时 locals() ,我得到
{ 'a': 1, 'c': 3, 'b': 2, '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, '__name__': '__main__', '__doc__': None }

如何按照我定义的顺序从 locals() 检索局部变量?

最佳答案

您可以通过访问代码对象在函数中执行此操作。
__code__对象的 .co_varnames属性按定义的顺序存储变量。这个扩展的例子很有启发性,因为它展示了如何将参数传递给函数,以及内部定义的变量:

def foo(a, b, c=3, d=4, *args, **kwargs):
e = 5
f = 6
g = 7
for var in foo.__code__.co_varnames:
print(var, locals()[var])

现在(由于打印语句和函数之间的差异,在 Python 2 中看起来会略有不同。):
>>> foo(1, 2, *(11, 12, 13), **{'h': 14, 'i': 15, 'j': 16})
a 1
b 2
c 11
d 12
args (13,)
kwargs {'i': 15, 'h': 14, 'j': 16}
e 5
f 6
g 7
var var

关于python - 按变量声明的顺序检索 locals() - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26269932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com