Python3中有没有一种方法可以存储一个类的实例,以便在另一个类的方法中多次使用?我有这样的课。。。在
class ObjectOne:
def __init__(self):
#initializes multiple different instances of ObjectTwo
self.ObjectTwoInstance = ObjectTwo(...)
def print_output(self):
#prints some output from initialized objects
class ObjectTwo:
def __init__(self):
#some initialization
def change_object(self):
"""Changes some state of an ObjectTwo Instance"""
#creates a new instance of ObjectOne, and overrides
#the default ObjectOne instance's initialization of
#ObjectTwo. (I want to be able to refer back to this
#new instance of ObjectOne, and change that instead
#of changing another default ObjectOne object)
我的问题是ObjectTwo中的方法change_对象。可能有更好的方法来实现这一点,但本质上我希望能够保存更新的ObjectOne实例,以便下次调用change_object时可以引用该新实例,并更改该实例而不是基本初始化的ObjectOne实例。在
在当前情况下,每当我尝试调用change_object时,它都会在新的ObjectOne实例中更改ObjectTwo的init,但只更新ObjectOne的默认初始化,因为change_object不知道上次调用它时更新的ObjectOne实例。(我尽量不让人困惑,但这是我能解释的最好的方式)
如果有更简单的方法来实现这一点,或者我需要重新构造代码吗?不管怎样,我都不知道该怎么做。在
(编辑:更改了ObjectOne的__init__
,使我的问题更清楚)
我不能百分之百肯定你想做什么,但似乎有更好的方法来做这件事。。。在
假设我对您的理解是正确的-您试图为每个},我建议在}的修改实例:
ObjectTwo
的实例创建修改后的ObjectOne
的单独实例,然后在ObjectOne
的相应实例上使用{__init__
内创建{我还建议考虑定义一个新的类,比如继承},并且可以修改它的}的原始(默认)定义。在
ObjectOne
;这个类将用在ObjectTwo
而不是{__init__
,而不影响{我最终通过将^{cd1>}传递到^{cd2>}到^{cd2>}的^{cd4>},从而解决了问题,如:
这与ViAik建议的类似,但不涉及创建新类或初始化全新实例。
相关问题 更多 >
编程相关推荐