Creating a new instance of a class from an existing instance in Python
I’ve been wasting a lot of time creating a game in Python.
I’m sure this isn’t news, but it took quite a lot of searching to find the answer. I the game I have a
tech tree list that holds an instance of each of the buildings that can be built. When you want to build a new one, the game lists these buildings and you choose one.
It took me ages to work out how to build a new copy of the chosen object. I didn’t want to have some giant
if-elif-else structure that worked it out, I wanted to be able to add new buildings when I thought of them, without worrying about forgetting to update the selector.
It’s actually quite easy, once you know how:
class MyClass(object): def __init__(self): self.value = 'One' a = MyClass() a.value = 'Two' c = a.__class__ b = c() print a.value print b.value
documented here so I don’t forget.