是否可以延迟对作为函数调用一部分的表达式的求值?

苏里南Clubcard

在我的程序中,我多次出现这种模式:

if some_bool:
   print(f"some {difficult()} string")

我考虑过为此创建一个函数:

def print_cond(a_bool, a_string):
   if a_bool:
      print(a_string)

print_cond(some_bool, f"some {difficult()} string")

但是这样做的结果是,即使some_bool == False,也总是对第二个参数求值。是否有办法将对f字符串的评估延迟到实际打印出来为止?

安德烈·凯斯利(Andrej Kesely)

您可以通过将f字符串放入lambda中来延迟对它的求值。

例如:

def difficult():
    return "Hello World!"

def print_cond(a_bool, a_string):
    if a_bool:
        print("String is:")
        print(a_string())  # <-- note the ()


print_cond(True, lambda: f"some {difficult()} string")

印刷品:

String is:
some Hello World! string

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

评估Lambda表达式作为表达式树的一部分

来自分类Dev

我的左联接查询没有将指定的表达式作为聚合函数的一部分

来自分类Dev

我的左联接查询没有将指定的表达式作为聚合函数的一部分

来自分类Dev

MS-Access:您的查询不包含指定的表达式作为聚合函数的一部分

来自分类Dev

如何修复“查询不包含指定的表达式‘credit usd’作为聚合函数的一部分”?

来自分类Dev

C中条件运算符的算术数组下标表达式作为操作数的一部分的求值

来自分类Dev

正则表达式:是否可以使用“ |” 仅匹配模式的一部分?

来自分类Dev

作为表达式一部分的SELECT只允许单个结果

来自分类Dev

OperationalError 仅允许作为表达式一部分的 SELECT 的单个结果

来自分类Dev

我可以在text.replace函数的第二部分中使用我的regexp表达式的一部分吗?

来自分类Dev

我可以在text.replace函数的第二部分中使用我的regexp表达式的一部分吗?

来自分类Dev

MS-Access-您尝试执行不包含指定表达式“ Quantity”作为聚合函数一部分的方法

来自分类Dev

在作为表达式一部分引用的CFML结构中未定义元素xx

来自分类Dev

在作为表达式一部分引用的CFML结构中未定义元素xx

来自分类Dev

为什么此正则表达式返回0作为整数的一部分?

来自分类Dev

如何在 bash shell 中使用查找结果作为正则表达式的一部分

来自分类Dev

R:将字符串从函数输入转换为函数中表达式的一部分

来自分类Dev

Ruby REPL,确定行是否是有效表达式的一部分

来自分类Dev

正则表达式-检查子字符串是否不是模式的一部分

来自分类Dev

使用Strip函数删除通过正则表达式获得的字符串的一部分

来自分类Dev

初始化表达式是D中构造函数的一部分吗?

来自分类Dev

使用strip函数删除通过正则表达式获得的字符串的一部分

来自分类Dev

初始化表达式是D中构造函数的一部分吗?

来自分类Dev

简单的正则表达式替换URL的第一部分

来自分类Dev

正则表达式选择单词的一部分

来自分类Dev

查找JavaScript表达式的一部分

来自分类Dev

正则表达式匹配单词的一部分

来自分类Dev

在C#中将表达式的一部分定义为变量

来自分类Dev

正则表达式匹配一部分或全部字符串

Related 相关文章

  1. 1

    评估Lambda表达式作为表达式树的一部分

  2. 2

    我的左联接查询没有将指定的表达式作为聚合函数的一部分

  3. 3

    我的左联接查询没有将指定的表达式作为聚合函数的一部分

  4. 4

    MS-Access:您的查询不包含指定的表达式作为聚合函数的一部分

  5. 5

    如何修复“查询不包含指定的表达式‘credit usd’作为聚合函数的一部分”?

  6. 6

    C中条件运算符的算术数组下标表达式作为操作数的一部分的求值

  7. 7

    正则表达式:是否可以使用“ |” 仅匹配模式的一部分?

  8. 8

    作为表达式一部分的SELECT只允许单个结果

  9. 9

    OperationalError 仅允许作为表达式一部分的 SELECT 的单个结果

  10. 10

    我可以在text.replace函数的第二部分中使用我的regexp表达式的一部分吗?

  11. 11

    我可以在text.replace函数的第二部分中使用我的regexp表达式的一部分吗?

  12. 12

    MS-Access-您尝试执行不包含指定表达式“ Quantity”作为聚合函数一部分的方法

  13. 13

    在作为表达式一部分引用的CFML结构中未定义元素xx

  14. 14

    在作为表达式一部分引用的CFML结构中未定义元素xx

  15. 15

    为什么此正则表达式返回0作为整数的一部分?

  16. 16

    如何在 bash shell 中使用查找结果作为正则表达式的一部分

  17. 17

    R:将字符串从函数输入转换为函数中表达式的一部分

  18. 18

    Ruby REPL,确定行是否是有效表达式的一部分

  19. 19

    正则表达式-检查子字符串是否不是模式的一部分

  20. 20

    使用Strip函数删除通过正则表达式获得的字符串的一部分

  21. 21

    初始化表达式是D中构造函数的一部分吗?

  22. 22

    使用strip函数删除通过正则表达式获得的字符串的一部分

  23. 23

    初始化表达式是D中构造函数的一部分吗?

  24. 24

    简单的正则表达式替换URL的第一部分

  25. 25

    正则表达式选择单词的一部分

  26. 26

    查找JavaScript表达式的一部分

  27. 27

    正则表达式匹配单词的一部分

  28. 28

    在C#中将表达式的一部分定义为变量

  29. 29

    正则表达式匹配一部分或全部字符串

热门标签

归档