2014-11-22 2 views
5

Mein Code die folgenden Fehler erzeugt: TypeError: object() takes no parametersTypeerror: Objekt() nimmt kein Parameter

class Graph(object): 
    def vertices(self): 
     return list(self.__graph_dict.keys()) 

if __name__ == "__main__": 

    g = { "a" : ["d"], 
      "b" : ["c"], 
      "c" : ["b", "c", "d", "e"], 
      "d" : ["a", "c"], 
      "e" : ["c"], 
      "f" : [] 
     } 

    graph = Graph(g) 

    print("Vertices of graph:") 
    print(graph.vertices()) 

Gibt es eine Weise, die ich dieses Problem lösen kann?

Antwort

11

Ihre Graph Klasse hat keine Argumente auf __init__ daher, wenn Sie anrufen:

graph = Graph(g)

Sie eine Fehlermeldung erhalten, weil Graph nicht weiß, was mit ‚g‘ zu tun. Ich denke, was Sie wollen, ist:

class Graph(object):  
    def __init__(self, values): 
     self.__graph_dict = values 
    def vertices(self): 
     return list(self.__graph_dict.keys())