2017-03-06 4 views
0

Ich bin ziemlich sicher, dass es einige dumme Fehler gibt, aber ich konnte es nicht herausfinden. Ich möchte eine verkettete Liste implementieren. Ich habe eine Klasse für die Implementierung von Knoten, die ich in einer der Funktionen für LinkedList verwende, wenn ich einen neuen Knoten schieben muss. Hier ist der Code (vermeiden Sie die fehlerhafte Vertiefung)Python: Implementieren der Linkedlist mit Multiple-Klassen

class LinkedList(): 

def __init__(self, head=None): 
    self.head = head 

def insert(self, data): 
    new_node = Node(data) 
    new_node.set_next(self.head) 
    self.head = new_node 



class Node(): 
    def __init__(self, data=None, next_node=None): 
    self.data = data 
    self.next_node = next_node 

def get_data(self): 
    return self.data 

def get_next(self): 
    return self.next_node 

def set_next(self, new_next): 
    self.next_node = new_next 

Aber zu versuchen, eine Instanz des LinkedList in PyCharm Konsole zu bekommen dies ist, was ich bekomme

import linkedList 
a=LinkedList() 
Traceback (most recent call last): 
File "/usr/lib/python3.5/code.py", line 91, in runcode 
exec(code, self.locals) 
File "<input>", line 1, in <module> 
NameError: name 'LinkedList' is not defined 

Irgendwelche Ideen, wo ich werden könnte Verschrauben ?

Antwort

0

Indem Sie import linkedList tun, importieren Sie das Modul, das ich denke, enthält den Code, den Sie in Ihrer Frage veröffentlicht haben. Sie müssen den Namespace linkedList verwenden, um auf den Modulinhalt zuzugreifen.

So a=LinkedList() wird nicht funktionieren, aber a=linkedList.LinkedList() sollte funktionieren.

Wenn Sie die LinkedList Definition von Ihrem Modul zu Ihrem aktuellen globalen Namensraum hinzufügen möchten, können Sie auch wie folgt vorgehen:

from linkedList import LinkedList 
a = LinkedList() 

siehe https://docs.python.org/3/tutorial/modules.html