如何解释功能损害处理的行为?

2024-05-18 12:34:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个功能:

def test_func(a, b):
    print a
    print b

我知道当函数调用如下所示时,使用字典是不对的:

a = {1:2, 3:4}
test_func(*a) # function expects a sequence as an argument

它应该是一个卷发或列表。但控制台并没有显示任何错误,并打印此字典的键:1和3

看起来是这样的:当函数调用需要一个序列,但需要一个字典时,它会将字典的键作为参数序列来提取。可以吗


Tags: test功能an列表字典defasfunction
1条回答
网友
1楼 · 发布于 2024-05-18 12:34:03

a是一个序列。更具体地说,当dict被迭代时,迭代产生字典的键(以不可预测的顺序)

考虑

for i in {1:2, 3:4}:
    print i

结果将打印1和3,因为dict的迭代将产生密钥

另外,使用字典传递参数还有一种有趣的方法:

a = {'a':2, 'b':4}
test_func(**a)

双星号将dict的值传递给函数的同名参数。在这种情况下,函数按顺序打印2和4

相关问题 更多 >

    热门问题