I have a string of an object instance. Is there a way to turn it back into the object?
I've tried ast.literal_eval
but because the object is a class I wrote on own it doesn't seem to work.
The class:
class Card(pygame.sprite.Sprite):
def __init__(self, card_name, player_class):
"""
class card attributes:
1) card name
2) card profile image
3) card image
4) card type
5) card rarity
"""
super(self.__class__, self).__init__()
self.card_name = card_name
try:
self.card_profile_img = pygame.image.load(card_name + '.png')
except pygame.error:
self.card_profile_img = pygame.image.load('beta_pic.png')
if player_class == 'ironclad':
with open('ironclad_cards.txt', 'r') as f:
cards = f.read().split('\n')
for card in cards:
if card.split('$')[0] == card_name:
self.card_type = card.split('$')[1]
self.card_rarity = card.split('$')[2]
self.card_img = pygame.image.load(self.card_rarity + '_' + self.card_type + '.png')
self.energy_cost = int(card.split('$')[3])
self.card_des = card.split('$')[4]
self.card_effect = card.split('$')[5]
elif player_class == 'silent':
with open('silent_cards.txt', 'r') as f:
cards = f.read().split('\n')
for card in cards:
if card.split('$')[0] == card_name:
self.card_type = card.split('$')[1]
self.card_rarity = card.split('$')[2]
self.card_img = pygame.image.load(self.card_rarity + '_' + self.card_type + '.png')
self.energy_cost = card.split('$')[3]
self.card_des = card.split('$')[4]
self.card_effect = card.split('$')[5]
elif player_class == 'defect':
with open('defect_cards.txt', 'r') as f:
cards = f.read().split('\n')
for card in cards:
if card.split('$')[0] == card_name:
self.card_type = card.split('$')[1]
self.card_rarity = card.split('$')[2]
self.card_img = pygame.image.load(self.card_rarity + '_' + self.card_type + '.png')
self.energy_cost = card.split('$')[3]
self.card_des = card.split('$')[4]
self.card_effect = card.split('$')[5]
self.card_img_rect = self.card_img.get_rect()
self.card_img_rect.x = 0
self.card_img_rect.y = 0
I have:
<card.Card instance at 0x02AE7AA8>