Function lookup using a directory.
Roman Suzi
rnd at onego.ru
Mon Jun 18 11:59:33 EDT 2001
On Mon, 18 Jun 2001 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'
>
> class Help1:
>
> def run(self,which):
> if len(which) == 1:
> print 'Help1 no args'
> else:
> print 'Help1 args'
>
> class Help2:
>
> def run(self,which):
> if len(which) == 1:
> print 'Help2 no args'
> else:
> print 'Help2 args'
>
> class Help3:
>
> def run(self,which):
> if len(which) == 1:
> print 'Help3 no args'
> else:
> print 'Help3 args'
Brrrr...
Maybe:
class Help:
noargs = "no such command"
args = "no such cmd"
def run(self,which):
if len(which) == 1:
print self.noargs
else:
print self.args
class Help0:
noargs = "blah blah ..."
args = "balh x blah y ..."
...
Then just this:
command_table = {
'0': Help0,
'1': Help1,
'2': Help2,
'3': Help3,
}
> if __name__ == '__main__':
>
> command = user_input()
>
> try:
> h = command_table[command[0]]
> except:
> print command[0]+' not found'
h = command_table[command[0]]
h.run()
> So, a couple of questions please.....
>
> Can I do this, I.E. have a class as a value in a dictionary
> and if so, what would the correct declaration be.
>
> Thanks.
>
>
> Andy Pevy
> A Very Beginner Pythoneer.
Sincerely yours, Roman A.Suzi
--
- Petrozavodsk - Karelia - Russia - mailto:rnd at onego.ru -
More information about the Python-list
mailing list