如何在Python中获取两个可以单独编辑的类实例?

时间:2014-04-02 06:32:40

标签: python copy

我知道这可能是重复但是如果我能在这里找到答案就打败我。我希望能够拥有一个可以包含不同值的类的不同实例。我已经尝试了深度和浅层副本,我已经尝试过复制类,类的实例,你可以命名。

>>> class classy:
...   a = 1
...   b = 2
... 
>>> import copy
>>> x = copy.deepcopy(classy)
>>> y = copy.deepcopy(classy)
>>> x.a = 100
>>> y.a
100

所以基本上我希望y.a返回1而不是100.

谢谢

2 个答案:

答案 0 :(得分:5)

使用instance variables。这就是他们的目标。

class classy:
    def __init__(self):
        self.a = 1
        self.b = 2

x = classy()
y = classy()
x.a = 100
>>> print y.a
1

答案 1 :(得分:1)

Jayanth已经证明了这样做的方法。我只是想指出代码的关键问题。

您的问题标题询问实例,但您的代码没有实例。你只有一堂课。如果你想要一个类的实例,你需要创建实例,这是通过调用类完成的:

>>> class classy:
...     a = 1
...     b = 2
>>> x = classy()
>>> y = classy()
>>> x.a = 100
>>> y.a
1

请注意,Jayanth也在他的回答中这样做。即使没有使用Jayanth的答案中所示的实例属性,上述代码的工作原因也有些复杂,但基本点至关重要:实例和类是两个不同的东西。您可以通过调用类来创建类的实例。您应该阅读the Python tutorial以熟悉Python中的类和实例。