Moving from java to python.
PeterBraden1 at googlemail.com
PeterBraden1 at googlemail.com
Mon Nov 12 10:25:19 EST 2007
Hi,
I have recently been learning python, and coming from a java
background there are many new ways of doing things that I am only just
getting to grips with.
I wondered if anyone could take a look at a few pieces of code I have
written to see if there are any places where I am still using java-
esque techniques, and letting me know the appropriate python way of
doing things.
Here is a node class I wrote for use in graph traversal algorithms:
#====
class Node:
"""
Node models a single piece of connected data.
Author: Peter Braden
Last Modified : Nov. '07
"""
def __init__(self, connections = None, uid = None):
"""
Args:
[connections - a list of (connected node, weight) tuples. ]
[uid - an identifier for comparisons.]
"""
self._connected = []
self._weights = []
if connections:
for i in connections:
self.connected.append(i[0])
self.weights.append(i[1])
if not uid:
self.id = id(self)
else:
self.id = uid
def __eq__(self, other):
return self.id == other.id
def getConnected(self):
return self._connected
def getWeights(self):
return self._weights
def getConnections(self):
connections = []
for i in range(len(connected)):
connections.append((self._connected[i],self._weight[i]))
return connections
connected = property(getConnected, None)
weights = property (getWeights, None)
connections = property(getConnections, None)
def addConnection(self, node, weight = 0):
self.connected.append(node)
self.weights.append(weight)
def removeConnection(self, node):
i = self._connected.index(node)
del self._connected[i]
del self._weights[i]
#===
Cheers,
Peter
More information about the Python-list
mailing list