Pythonic way to have a choice of 2-3 options as an argument to a function

前端 未结 6 786
抹茶落季
抹茶落季 2021-02-07 07:16

I have a Python function which requires a number of parameters, one of which is the type of simulation to perform. For example, the options could be \"solar\", \"view\" or \"bot

6条回答
  •  别跟我提以往
    2021-02-07 07:26

    If the point Niklas' makes in his answer doesn't hold, I would use a string argument. There are Python modules in the standard library that use similar arguments. For example csv.reader().

    sim_func(a, b, c, sim_type='solar')
    

    Remember to give a reasonable error inside the function, that helps people out if they type in the wrong thing.

    def sim_func(a, b, c, sim_type='solar'):
        sim_types = ['solar', 'view', 'both']
        if sim_type not in sim_types:
            raise ValueError("Invalid sim type. Expected one of: %s" % sim_types)
        ...
    

提交回复
热议问题