On Sun, 17 Nov 2013 17:20:52 -0500, Roy Smith wrote:

> In article <mailman.2807.1384725251.18130.python-l...@python.org>,
>  Tamer Higazi <th9...@googlemail.com> wrote:

>> I want the param which is a string to be converted, that I can fire
>> directly a method. Is it somehow possible in python, instead of writing
>> if else statements ???!
> 
> I'm not sure why you'd want to do this, but it's certainly possible

It is very good for implementing the Command Dispatch pattern, which in 
turn is very good for building little command interpreters or mini-
shells. Python even comes with a battery for that:


import cmd
import sys
class MyShell(cmd.Cmd):
    # Override default behaviour of empty lines.
    def emptyline(self):
        pass
    # Define commands for our shell by prefixing them with "do_".
    def do_hello(self, person):
        if person:
            print("Hello, %s!" % person)
        else:
            print("Hello!")
    def do_echo(self, line):
        print(line)
    def do_double(self, num):
        print(2*float(num))
    def do_bye(self, line):
        return True

MyShell().cmdloop()


This defines and runs a command interpreter that understands commands 
"bye", "double", "echo", "hello" and "help". (Help is predefined for you.)


See also http://drunkenpython.org/dispatcher-pattern-safety.html for 
another use of command dispatch.



-- 
Steven
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to