I've noticed that it's possible to create conflicting instances of the collections.namedtuple class:

  from collections  import namedtuple as nt
  IX = nt('X', 'a b')
  IY = nt('Y', 'c d')
  x = IX(0, 1)
  y = IY(2, 3)

The above are non-conflicting class instances and of two distinct namedtuple classes and distinct instances of those classes, but what happens with this?

  IX2 = nt('X', 'g')
  z = IX2(10)

It looks like IX and IX2 are two distinct classes, which makes sense, but what is the classname parameter passed to the constructor used for? Is it an error to construct two distinct classes with the same value?

I was wondering if it's useful to allow duplicate (consistant) constructions, but have them simply return the same class instance. Should inconsistant constructions with the same name raise and exception?
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to