Function lookup using a directory.
Ype Kingma
ykingma at accessforall.nl
Tue Jun 19 05:01:46 EDT 2001
andy.pevy at nokia.com wrote:
>
> Hi Ype
>
> Ype Kingma <ykingma at accessforall.nl> wrote:
> > Andy,
>
> > In addition to the earlier replies:
>
> > Your run() method seems to be checking for
> > presence of arguments, so you might
> > consider defining it with an extra '*' as:
>
> > class Help0:
> > def run(self, *which):
> > if len(which) == 1:
> > print 'Help no args'
> > else:
> > print 'Help args'
>
> > This will give you a tuple with the passed arguments,
> > in your case an empty tuple.
>
> The argument passed to thee run method is a list, so does this still necessary ??.
That depends on what you want to check in the method.
Your own code (below) calls the method without arguments:
> >> h.run() # Call the run method of the selected class.
This would cause 'which' to be set to an empty tuple for
the execution of the method.
Calling it as:
h.run([])
would cause 'which' to be set to a tuple containing an empty list.
In case you want the empty list to be the default value
define the method as:
def run(self, which=[]):
This would cause the invocation
h.run()
to have 'which' bound to an empty list during execution.
Good luck,
Ype
>
> > Have fun,
> > Ype
>
> > andy.pevy at nokia.com wrote:
> >>
> >> Hi Guys
> >>
> >> I am having trouble with the directory data type. What I want to
> >> do is to set up a directory that I can use to parse a command entered by
> >> the user, and have a directory return the name of a class to handle the
> >> command. Like this :-
> >>
> >> command_table = {'0': 'Help0',
> >> '1': 'Help1',
> >> '2': 'Help2',
> >> '3': 'Help3' }
> >>
> >> class Help0:
> >>
> >> def run(self,which):
> >> if len(which) == 1:
> >> print 'Help no args'
> >> else:
> >> print 'Help args'
> >>
> > [snip]
> >>
> >> if __name__ == '__main__':
> >>
> >> command = user_input()
> >>
> >> try:
> >> h = command_table[command[0]]
> >> except:
> >> print command[0]+' not found'
> >>
> >> h.run() # Call the run method of the selected class.
> >>
>
> > --
> > email at xs4all.nl
>
> --
>
> We were always told that a million monkeys typing for a million years
> would eventually produce the works of Shakespeare. Now, thanks to the
> Internet, we know this is not true.
--
email at xs4all.nl
More information about the Python-list
mailing list