You have both class instances and class objects. The variables
cartesian = dict()
bondList = list()
atomName = str()
atomicNum = int()
would point to the same variable (block of memory) for all instances of the class, where
self.atomName = name
self.atomicNum = atNum
are unique for each instance of the class (point to a separate block of memory for a separate class instance). I think you want the latter so your code would change for "bondList" and the other variables.
class Atom:
def __init__(self,name, atNum):
self.atomName = name
self.atomicNum = atNum
self.bondList = []
def addBondedAtom(Atom):
self.bondList.append(Atom)
You might also take a look at the style guide for variable name conventions http://www.python.org/dev/peps/pep-0008/