Boolean comparison & PEP8
Dan Sommers
2QdxY4RzWzUUiLuE at potatochowder.com
Mon Jul 29 10:41:12 EDT 2019
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
More information about the Python-list
mailing list