0
votes

Comment pouvez-vous passer un utilisateur configurable dicter dans une instance de classe

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>

Code simplifié strong> p> xxx pré>

Code de travail fort> P> P> P> P> 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)


5 commentaires

Tu es presque là-bas. Un constructeur typique ressemble à def __init __ (auto, données): auto.data = données


Classe Dummy (Données): -> Dummy de classe:


data = any_dict_01 est pas pas data soit n'importe quel dict défini par le any_dict_01 module. Il fait data un autre nom pour ce même module .


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 est la même chose que vous obtenez des informations dans toute fonction ordinaire : en lui donnant un paramètre , et Passer les informations en tant que argument .


@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.


3 Réponses :


1
votes

Votre code fonctionnerait en corrigeant la dernière partie comme celle-ci: xxx

Vous pouvez rendre la dicte accessible avec la notation de points, comme s'il s'agissait d'une instance de classe, Comme ça .


1 commentaires

(OP a-t-il besoin de changer son constructeur aussi)



1
votes
class dummy:
    def __init__(self, my_dict):
        self.my_dict = my_dict

0 commentaires

1
votes

par demande:

data = any_dict_01 fait pas marque est un dict particulier défini par le module any_dict_01 . Il fait data être un autre nom pour que le même module .

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 __ est la même chose que vous obtenez des informations dans toute fonction ordinaire : en lui donnant un paramètre , et Transmettre les informations en tant que argument .


0 commentaires