python打印类文本传递给变量

时间:2017-03-15 09:28:56

标签: python string printing

我想将函数文本写入文本文件,因为它传递给变量:

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,因为参数会不时变化,因此我无法对函数文本进行硬编码。

1 个答案:

答案 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)可能正常工作