On 19/03/18 11:40, Marc Hartmayer wrote:
On Sat, Mar 17, 2018 at 03:23 PM +0100, Radostin Stoyanov
<rstoyanov1(a)gmail.com> wrote:
> Reduce the number of if-statements and use a single return.
> Utilise a dictionary to map between occurrences and values.
>
> Signed-off-by: Radostin Stoyanov <rstoyanov1(a)gmail.com>
> ---
> src/esx/esx_vi_generator.py | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/src/esx/esx_vi_generator.py b/src/esx/esx_vi_generator.py
> index 1641a2a1e..e4890c61b 100755
> --- a/src/esx/esx_vi_generator.py
> +++ b/src/esx/esx_vi_generator.py
> @@ -75,16 +75,16 @@ class Member:
>
>
> def get_occurrence_comment(self):
> - if self.occurrence == OCCURRENCE__REQUIRED_ITEM:
> - return "/* required */"
> - elif self.occurrence == OCCURRENCE__REQUIRED_LIST:
> - return "/* required, list */"
> - elif self.occurrence == OCCURRENCE__OPTIONAL_ITEM:
> - return "/* optional */"
> - elif self.occurrence == OCCURRENCE__OPTIONAL_LIST:
> - return "/* optional, list */"
> -
> - raise ValueError("unknown occurrence value '%s'" %
self.occurrence)
> + occurrence_map = {
> + OCCURRENCE__REQUIRED_ITEM: "/* required */",
> + OCCURRENCE__REQUIRED_LIST: "/* required, list */",
> + OCCURRENCE__OPTIONAL_ITEM: "/* optional */",
> + OCCURRENCE__OPTIONAL_LIST: "/* optional, list */"
> + }
> + if self.occurrence not in occurrence_map:
> + raise ValueError("unknown occurrence value '%s'" %
self.occurrence)
> +
> + return occurrence_map[self.occurrence]
What do you think about this? (instead of an explicit check)
try:
return occurrence_map[self.occurrence]
except KeyError:
raise ValueError("unknown occurrence value '%s'" % self.occurrence)
In my opinion it’s more “pythonic”.
Thanks Marc,
Yes, I agree with you. Using try/except here would be better!
Beste Grüße / Kind regards
Marc Hartmayer
IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294