J'ai une classe qui fait des objets me permettant d'accéder aux propriétés d'un système de caméra expérimental. J'ai des propriétés de configuration enregistrées dans une dict pour l'endroit où certaines caméras doivent être initialement localisées. Comme ces paramètres initiaux peuvent varier, je ne peux pas les coder durs dans la classe, mais vous avez besoin d'eux séparer dans un fichier texte que j'accède à l'aide de la bibliothèque JSON.
existe un moyen de transmettre la dicte dans une classe de sorte que ses paires de valeur clé peuvent être utilisé? p>
Basé sur des allusions et des conseils de Karl dans les commentaires sous la question que j'ai compris comment le faire (j'espère que Karl met ses commentaires comme une réponse afin que je puisse l'accepter). P> import json
data = 'my_rig.txt'
class dummy:
def __init__(self, data):
self.data = data
def getDict(self):
with open(data) as json_file:
data = json.load(json_file)
print(data)
a =dummy()
theDict = a.getDict(data)
3 Réponses :
Votre code fonctionnerait en corrigeant la dernière partie comme celle-ci: Vous pouvez rendre la dicte accessible avec la notation de points, comme s'il s'agissait d'une instance de classe, Comme ça . P> p>
(OP a-t-il besoin de changer son constructeur aussi)
class dummy: def __init__(self, my_dict): self.my_dict = my_dict
par demande: p>
Quoi qu'il en soit, cette question ne concerne pas vraiment les cours. La façon dont vous obtenez des informations dans la méthode data = any_dict_01 code> fait pas fort> marque code> est un dict particulier défini par le module
any_dict_01 code>. Il fait
data code> être un autre nom em> pour que le même module em>. P>
__ init __ code> est la même chose que vous obtenez des informations dans toute fonction ordinaire em>: en lui donnant un paramètre em>, et Transmettre les informations en tant que argument em>. p>
Tu es presque là-bas. Un constructeur typique ressemble à
def __init __ (auto, données): auto.data = données code>
Classe Dummy (Données): Code> ->
Dummy de classe: Code>
data = any_dict_01 code> est pas b> pas
data code> soit n'importe quel
dict code> défini par le
any_dict_01 code> module. Il fait
data code> un autre nom i> pour ce même module i>.
Quoi qu'il en soit, cette question ne concerne pas vraiment les cours. La façon dont vous obtenez des informations dans la méthode init b> est la même chose que vous obtenez des informations dans toute fonction ordinaire i>: en lui donnant un paramètre i>, et Passer les informations en tant que argument i>.
@Karlknechtel Si vous avez mis cela comme une réponse, les 2 commentaires fusionnés, je l'accepterai comme en fonction de cela, j'ai écrit du code qui fonctionne, merci.