On Jan 11, 8:46 am, "Adrian Wood" <[EMAIL PROTECTED]> wrote: > Hi al! I'm new to the list, and reasonably new to Python, so be gentle. > > Long story short, I'm having a hard time finding a way to call a > function on every object of a class at once.
A class is a factory that creates objects. It keeps no records of what it has created -- it will never have to recall them for remediation. The customer needs to keep track of them. [snip] >I've > tried tracking the names of each object in a list In general, objects have 0, 1, or many "names" ... "tracking the names" is not a very meaningful concept hence not a very useful concept. At your application level, a person's name is what they call themselves and can vary over time and with the purpose for which it is used, and what is actually recorded in databases is subject to a non- trivial error rate -- hence using person's name as a key is not a very good idea. > and even creating > each object within a list, but don't seem to be able to find the right > syntax to make it all work. "creating each object in a list" sounds like it's going down the right path -- you need to keep a collection of objects somehow if you want to perform some operations on all objects, and a list is a reasonable start. Here's a very basic simple skeleton toy demonstration: >>> class Person(object): ... def __init__(self, name, hair): ... self.name = name ... self.hair = hair ... def show(self): ... print 'name=%r hair=%r' % (self.name, self.hair) ... >>> plist = [] >>> obj1 = Person(name='Bluey', hair='red') >>> plist.append(obj1) >>> obj2 = Person(name='John', hair='grey') >>> plist.append(obj2) >>> >>> for obj in plist: ... obj.show() ... name='Bluey' hair='red' name='John' hair='grey' >>> Does this help? -- http://mail.python.org/mailman/listinfo/python-list