我想将函数文本写入文本文件,因为它传递给变量:
myvariable = myClass(arg1, arg2, arg3, arg4, arg_n)
f = open("mytextfile.txt", "w")
f.write("here is my paremeters:"+ str(myvariable))
f.close()
在我的打印输出文本文件中,我得到:
"here is my parameters:<somefunction.myClass instance at 0x7d54a5101b48>"
所需的输出将是:
"here is my parameters: myClass(arg1, arg2, arg3, arg4, arg_n)"
我应该使用myvariable
,因为参数会不时变化,因此我无法对函数文本进行硬编码。
答案 0 :(得分:0)
由于您评论过第三方图书馆而且这不属于您自己的班级......
不漂亮,但它有效。
def string_it(c):
return """myClass({}, {}, {}, {}, {})""".format(
c.arg1, c.arg2, c.arg3, c.arg4, c.argN
)
f.write("here are my parameters: {}\n".format(string_it(myvariable)))
或者您可以尝试在该变量上实现它。
(没有试过自己,但这只是一个功能重新映射)
myvariable.__str__ = lambda s: """myClass({}, {}, {}, {}, {})""".format(
myvariable.arg1, myvariable.arg2, myvariable.arg3, myvariable.arg4, myvariable.argN
)
然后str(myvariable)
可能正常工作