use*_*077 2 python string typeerror python-3.x f-string
当我尝试在 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'
Run Code Online (Sandbox Code Playgroud)
返回错误:
---------------------------------------------------------------------------
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
Run Code Online (Sandbox Code Playgroud)
是什么导致了错误,我应该如何更正我的代码?
在f 字符串中,您不需要用str(). 以下应该工作:
f'model_site_id_{site_id}_meter_{meter}_{target_name}_model_id_{model_id}_11_12_19.hdf5'
Run Code Online (Sandbox Code Playgroud)
但是,您的代码在技术上应该可以正常工作,str()调用只是多余的 - 您可能str在某个时候通过执行以下操作重新分配了保留关键字:
str = 'test'
Run Code Online (Sandbox Code Playgroud)
现在,如果我们这样做
>>> str(site_id)
Run Code Online (Sandbox Code Playgroud)
我们得到
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)