【问题标题】:Function argument for an f-string '=' debugging operator [duplicate]f-string'='调试运算符的函数参数[重复]
【发布时间】:2021-11-26 10:55:32
【问题描述】:

如何为 f-string '=' 调试运算符传递变量?

from datetime import datetime


def print_var(var):

    print(str(datetime.now())[:19], end=' ')
    print(f'{var = }')


test = 5
print_var(test)

我希望print_var(test) 从函数外部打印变量名,即。

test = 5

请参阅Python: Print a variable's name and value?了解问题的上下文。

【问题讨论】:

  • 名称不是值的属性。你对print_var(some_list[index]) 有什么期待? print_var(5)?
  • 您希望变量名打印在屏幕上吗?
  • @KunalSharma 是的,我希望print_var(test) 在终端窗口中打印test = 5
  • @jonrsharpe 我或许应该在 Python 3.8 f-string = 语法的上下文中重新表述这个问题? stackoverflow.com/questions/32000934/…
  • 我对语法很熟悉,问题是您希望它不会是“本地名称”var。获得“外部名称”(test,在这种情况下)有很多可能的骗局,但都归结为同一个问题:该值可能被零个、一个或多个名称引用,并且没有它们中的一个是价值的属性。这是一个很好的介绍:nedbatchelder.com/text/names.html.

标签: python debugging f-string


【解决方案1】:

在 f 字符串中,您需要将需要打印的变量放在荣誉之间。像这样:

from datetime import datetime
    
def print_var(var):
    print(str(datetime.now())[:19], end=' ')
    print(f'var = {var}')

运行测试会产生以下结果:

test = 5
print_var(test)
>>>2021-10-06 11:32:05 var = 5

【讨论】:

  • f'var = {var}'f'{var = }' 做同样的事情,只是输入更多; OP 想要来自 outside 函数的名称。
猜你喜欢
  • 2011-06-09
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 2022-10-16
  • 1970-01-01
相关资源
最近更新 更多