Skip to main content
 首页 » 编程设计

python之类型错误 : 'str' object is not callable (I'm not calling it )

2025年05月04日9mate10pro

我试图让一个函数写入一个文件,其中将 4 个不同的字符串变量传递给写入的内容,但是无论出于何种原因,当我尝试这样做时,我得到了这个:

Traceback (most recent call last): 
  File "C:\Python Files\writePy\writePy.py", line 34, in <module> 
    indent = writeIf(mFile, genCond(), lFile, indent) 
  File "C:\Python Files\writePy\writePy.py", line 23, in writeIf 
    file.write('%sif (%s %s %s):' (indentation, cond[0], cond[1], cond[2])) 
TypeError: 'str' object is not callable 

这是我的主要代码:

# Main code 
lFile = open('OperationLog.txt', mode='w') # Log file for changes 
mFile = open('Evolve.txt', mode='w+') # File to be edited 
indent = 0 # Indentation for written code 
 
# Write two IF statements with a randomized condition to file, update indentation 
indent = writeIf(mFile, genCond(), lFile, indent) 
indent = writeIf(mFile, genCond(), lFile, indent) 
 
# Close files 
lFile.close() 
mFile.close() 

这是错误所在的函数:

def writeIf(file, cond, log, indent): 
    indentation = ' ' * (4 * indent) # Number of spaces to add is 4 * indent 
    file.write('%sif (%s %s %s):' (indentation, cond[0], cond[1], cond[2])) 
    indent = indent + 1 
    log.write('Added: IF statement to %s.' % file.name) 
    return indent 

请您参考如下方法:

您忘记了模运算符 (%):

file.write('%sif (%s %s %s):' % (indentation, cond[0], cond[1], cond[2])) 
#                      here --^