bin noch totaler Anfänger in der Pythonprogrammierung. Es klappte jedoch mit meinem kleinen Projekt recht gut. Jedoch habe ich einen komischen Fehler. Ich lese Daten einer Textdatei ein(konkret kommt es um eine Netzplandarstellung). Jedes gelesene Paket wird in ein Objekt geladen dass aus Name, Zeitaufwand, sowie eine Liste der Nachfolgerpakete geschrieben.
Am Schluss der Funktion wird das Netplan-Dictionary(tempNetplan) in das alle Pakete eingetragen sind zurückgegeben.
Nun zum Problem:
- Am Ende der Funktion sobald ich das Paket ausgebe(print) sind noch alle Daten da
- Sobald ich das dictionary aber auf das eigentliche übergebe(in der aufrufenden Funktion quasi) sind alle Daten bis auf die Liste verfügbar. Die Liste ist immer leer! Ich verstehe das nicht.
Plan laden:
Code: Alles auswählen
def __LoadPlan(self,filepath):
tempNetplan = dict()
validatekeylist = list()
try:
lines = open(filepath, 'r')
except:
print('EXCEPTION: Problem while loading data. Please check path or dataformat')
return tempNetplan.clear()
for line in lines:
columns = ''.join(line).split(" ")
if (columns[0] in validatekeylist):
print('EXCEPTION: Loop has been found!')
return tempNetplan.clear()
else:
tempplannode = NetplanNode()
tempplannode.Amount = int(columns[1])
try:
tempplannode.Followers.clear()
if (len(columns) > 2):
follower = columns[2].split(",")
for singlefollower in follower:
tempplannode.Followers.append(singlefollower.rstrip())
except IndexError:
print('EXCEPTION: IndexError in line: ' + line)
return tempNetplan.clear()
tempNetplan[columns[0]] = tempplannode
validatekeylist.append(columns[0])
#print(columns[0] + ': ' + str(self.__netplan[columns[0]].Amount) + ' ' + str(self.__netplan[columns[0]].Followers))
return tempNetplan
Code: Alles auswählen
def __init__(self, path):
self.__netplan = self.__LoadPlan(path)
Code: Alles auswählen
class NetplanNode(object):
## Public Classmembers
Amount = 0
Followers = list()
FAZ = 0
SAZ = 0
GP = 0
FP = 0
FEZ = 0
SEZ = 0
Critical = False