python get函数的默认值

2024-10-01 15:28:55 发布

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

如果传递给pythonget函数(对于字典)的默认值是一个表达式,那么是否仅在找不到键时才对其求值?让我们考虑下面的例子。

myDiction = {"a":1,"b":2}
val = myDiction.get("c",pow(2,3)-5)

那个数学表达式pow(2,3)-5是否经过计算


Tags: 函数get字典表达式数学val例子pow
3条回答

通过自己的函数进行测试并不难

def someF():
    print("called")
    return 3

myDiction = {"a":1,"b":2}

myDiction.get("a",someF())

打印:“呼叫”。是的,它是经过计算的,就像您从传递给函数的任何参数中所期望的那样

无论如何,它都将被评估

试试这个:

def test_func():
    print("run")
    return 3


myDiction = {"a": 1, "b": 2}
val = myDiction.get("a", test_func())
print(val)

您可以看到,即使a中存在myDiction,也会打印“run”消息

我们为什么不知道呢

>>> d = {1:2}
>>> d.get(1, print('default') or 3)
default
2
>>> d.get(2, print('default') or 3)
default
3

如您所见,函数参数在传递给函数之前进行求值

相关问题 更多 >

    热门问题