[Tutor] Class instantiation parameters
Jan Eden
lists at janeden.org
Sun Aug 7 10:14:36 CEST 2005
Hi,
after using Perl for some years for simple scripting tasks, one of my programs reached a size where an OO design is appropriate. So I rewrote the program using OO techniques in Perl. Because I am not entirely satisfied with the implementation, I decided port the program to Python.
The first thing I'd like to sort out are the parameters on class invocation. In Perl, I did (... for lines left out):
my $page = Show->new(type => $type, id => $id);
package Show;
...
sub new {
my $class = shift;
my $self = { @_ };
...
bless $self, $class;
return $self;
}
making use of the relatively liquid border between hashes (dictionaries) and arrays (lists).
In Python, I would do:
page = Show(type=type, id=id)
class Show:
def __init__(self, type, id):
self.id = id
self.type = type
...
return self
For two parameters, this is relatively simple. But if I have for example 10 parameters on instantiation, assigning each value the the class object manually will be really clumsy.
So how can I add the values of all the paramaters to my class instance in one step?
Thanks in advance,
Jan
--
Imagine if every Thursday your shoes exploded if you tied them the usual way. This happens to us all the time with computers, and nobody thinks of complaining. - Jeff Raskin
More information about the Tutor
mailing list