[Tutor] list of instance objects, access attribute
alan.gauld at btinternet.com
Fri Jun 19 10:21:02 CEST 2009
"Vincent Davis" <vincent at vincentdavis.net> wrote
def __init__(self, b1, b2):
self.fooa = b1
self.foob = b2
I assume thats what you really meant!
Ok now I have several instances in a list
b1 = B(1, 2)
b2 = B(3, 4)
b3 = B(9, 10)
alist = [b1, b2, b3]
> Lets say for each instance of the class I want to print the value of
> fooa if it is greater than 5. How do I do this,
define a method of the class, say bigprint()
def bigprint(self, limit=5):
if self.fooa > limit: print self.fooa
> about is how I iterate over the values of fooa.
Iterate over the objects and call the method. Make the object do
the work, your code should not need to know about the internal
attributes of the object.
For x in alist:
> Is that the right way or is there a better?
> will this work for methods?
Methods are how you should do it.
Direct access other than for simple reading of values is a
suspicious design smell. Any processing of or rules about
the data should be in a method.
Author of the Learn to Program web site
More information about the Tutor