本文介绍了TypeError:'str'对象不可调用(我没有调用它?)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
$ b $我试图用一个函数写入一个文件,其中有4个不同的字符串变量传递到写入的文件中,但无论出于何种原因, b
使用格式() b $ b $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $'$> {1} {2} {3}):'。format(indentation,cond [0],cond [1],cond [2]))
I'm trying to have a function write to a file with 4 different string variables passed into what is written, but for whatever reason when this is attempted, I get this:
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
This is my main code:
# 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()
and this is the function the error is in:
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
解决方案
Use the format() function in cases as this as its more suitable and easy to maintain
file.write('{0}if ({1}{2}{3}):'.format(indentation, cond[0], cond[1], cond[2]))
这篇关于TypeError:'str'对象不可调用(我没有调用它?)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!