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