【问题标题】:TypeError within f-string expression - 'str' object is not callablef-string 表达式中的 TypeError - 'str' 对象不可调用
【发布时间】:2019-12-11 09:55:32
【问题描述】:

当我尝试在 Python 3.7 中使用 f-string 语法编写字符串时出现错误。

我的代码如下:

i = 1

site_id= 0
meter = 0
model_id = i
target_name = 'log1p_meter_reading_corrected2'

f'model_site_id_{str(site_id)}_meter_{str(meter)}_{target_name}_model_id_{str(model_id)}_11_12_19.hdf5'

返回错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-68-1ebe1c78d868> in <module>
      6 target_name = 'log1p_meter_reading_corrected2'
      7 
----> 8 f'model_site_id_{str(site_id)}_meter_{str(meter)}_{target_name}_model_id_{str(model_id)}_11_12_19.hdf5'

TypeError: 'str' object is not callable

是什么造成了错误,我应该如何更正我的代码?

【问题讨论】:

    标签: python python-3.x string typeerror f-string


    【解决方案1】:

    f-strings 中,您不需要用str() 包装变量。以下应该有效:

    f'model_site_id_{site_id}_meter_{meter}_{target_name}_model_id_{model_id}_11_12_19.hdf5'
    

    但是,您的代码在技术上应该可以正常工作,str() 调用只是多余的 - 您可能在某些时候通过执行以下操作重新分配了保留关键字 str

    str = 'test'
    

    现在,如果我们这样做

    >>> str(site_id)
    

    我们得到

    TypeError: 'str' object is not callable
    

    【讨论】:

      猜你喜欢
      • 2015-03-07
      • 2019-03-05
      • 1970-01-01
      • 2020-09-16
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多