【问题标题】:How to save all "self" variables in Python after __init__()如何在 __init__() 之后在 Python 中保存所有“自我”变量
【发布时间】:2020-08-27 02:26:16
【问题描述】:

我在__init__() 函数中有一个类和一些自变量。一些自变量是派生的,它具有混合数据类型。如何保存所有这些自变量,以便在发生错误时对其进行调试?

请指教

【问题讨论】:

  • “自变量”是什么意思?您是指self.fooself.bar 之类的属性,还是__init__() 采用的其他参数?请举例说明您希望完成的工作。
  • 您的意思是要将数据保存到外部源,例如文件吗?
  • @wjandrea :我想将所有在 init 上初始化的变量保存在一个文件中,但我认为这是不可能的,因为所有变量都可能具有不同的类型。
  • @David :我想将在 init 上初始化的所有变量保存在一个文件中,但我认为这是不可能的,因为所有变量都可能具有不同的类型。
  • @chandrasutrisno:你可以看到泡菜:here

标签: python oop self


【解决方案1】:

您可以查看泡菜:official docs。它适用于所有数据类型,即使是自定义数据类型(但您仍然必须在加载数据时定义自定义类)
它将数据保存到一个文件中。如果您知道要保存哪些变量,可以使用:

import pickle


class Test:
    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c
        pickle.dump([a, b, c], open('dumpfile.pickle', 'wb'))


test = Test(1, 2, 3)  # Creates file dumpfile.pickle that contains the pickled list [1, 2, 3]
# To load the data back, even if in another file:
loaded_data = pickle.load(open('dumpfile.pickle', 'rb'))  # [1, 2, 3]

希望对你有帮助!

【讨论】:

  • 有趣,谢谢。会试一试的。
猜你喜欢
  • 2016-01-14
  • 1970-01-01
  • 2021-09-13
  • 2020-04-16
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多