On 7/29/19 10:02 AM, David Raymond wrote:

> I think the other part of the discussion to be had here is: how do you
> name your booleans?

Yep.

> ... To me the name of a boolean variable should be obvious that it's a
> boolean ...

Well, yeah, maybe.  If it's really only a boolean, and its value is
always either True or False, then I agree.

> if shell:

> #wait, "shell" is not really a statement or an instruction. "If
> shell"... what? "I need to shell"? Is this whether we want to use a
> shell, or if we discovered that we're already in one? Or is "shell"
> not really a boolean, and is holding which shell we want, and we're
> just using the "truthyness" to make sure it's not None? What's going
> on here? Dangit, ok, where's the documentation?  (subprocess is common
> enough that people know this, but imagine a much less frequently used
> module/function)

> Do I have a point or am I just smoking crack? Does anyone else have
> examples?

Consider an algorithm like this to determine which shell to use:

    shell = (get_shell_from_command_line()
             or get_shell_from_project_preferences()
             or get_shell_from_personal_preferences()
             or get_shell_from_system_preferences())

where each get_shell_from_XXX() function returns a /path/to/shell string
or None.  At least to me, Python's "or" operator and its notion of
truthiness make this algorithm natural.  Perhaps a better name is
path_to_shell, but I'd still end up with:

    if path_to_shell:
        execute_program(path_to_shell, ...)
    else:
        raise NoShellException()

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

Reply via email to