In search of python idiom for accessing arbitrary fields at run time
mshiltonj
mshiltonj at gmail.com
Sun Jul 8 14:21:41 EDT 2007
I'm trying to find the preferred python idiom for access arbitrary
fields of objects at run time.
For example, say I have an object the business code will do
*something* with three arbitrary fields at a given time, but I don't
know what the three fields are at run time. In perl, I'd do something
like this:
sub three_fields{
my $self = shift;
my @fields = @_;
foreach my $field (@fields)
{
my $value = $self->$field; # this is the one I'm
interested in
[...]
}
}
In python, I'm doing something like this:
def three_fields(self, field1, field2, field3):
for field in (field1, field2, field3):
value = eval('self.' + field) # this is the one I'm
interested in
[...]
This seems to do what I expect it to do. I'm wondering if that's the
preferred or standard way to do this in python. I wasn't sure how to
tease the answer to this question out of Google.
Thanks.
More information about the Python-list
mailing list