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.