On Sat, 26 Jun 2010 06:39:29 pm m...@doctors.net.uk wrote: > Dear Tutors, > > I have an object to which I dynamically add attributes. My question > is how I can inspect and display them at run-time? > > Class a(): > pass > > Obj1 = a() > > Obj1.name = "Bob" > Obj1.age = 45 > > dir(a) returns a tuple which contains name and age, but also other > things (includings methods, etc.) I could filter this tuple (checking > for callable(), etc.) but I just wondered if there was an existing > way of getting just name and age.
If you know they are called name and age, just access them like you did above: Obj1.name Obj1.age If you don't know they are called name and age, then how do you expect Python to know which of the many attributes and methods are the ones you want? Before you start writing your own filters, you should check out the inspect module, which already has most of that functionality ready-made. There's no general way to ask "which attributes were added dynamically?" because all of them are. The difference is that some of them are added dynamically when the class is created, some are added dynamically when the instance is initialised, and some are added dynamically later. But they're all added dynamically. Python doesn't track when attributes are added because, in general, it's an unimportant difference. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor