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

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to