DL Neil schreef op 21/07/2019 om 2:02:
How do you remember to from-import- 'everything' that is needed?
... > Upon closer inspection, I realised it didn't just fail; it failed badly!
Some silly, little, boy had imported the PythonEnvironment class but
failed to ALSO import PythonVersionError. So, the reported error was not
the expected exception!
...
Is there some 'easy way' to make sure that one doesn't just import the
desired class, but also remembers to import 'everything else' that might
be necessary. In this case, it'd be rather nice to:

        from environment_module import Python*

NB this is a syntax error, and won't import both the PythonEnvironment
and PythonVersionError classes.
> ...
What do you do to (respecting purism) ensure 'everything' (necessary) is
imported (and nothing more), preferably without relying upon (faulty, in
my case) human-memory or reading through volumes of code/documentation?

This is one of the advantages of using import instead of from-import.

import environment_module

...
try:
    ....
    # Just an example, since I don't know PythonEnvironment
    env = environment_module.PythonEnvironment()
    ...
except environment_module.PythonVersionError:
    # Handle the exception

In this case you have a pretty long module name (by the way, you could probably shorten it by removing _module; there's normally no need to repeat it in the name of a module that it's a module), making repeating it everywhere somewhat awkward. You can import the module using another name to work around that:

import environment_module as envmod

...
try:
    ....
    # Just an example, since I don't know PythonEnvironment
    env = envmod.PythonEnvironment()
    ...
except envmod.PythonVersionError:
    # Handle the exception


--
"Honest criticism is hard to take, particularly from a relative, a
friend, an acquaintance, or a stranger."
        -- Franklin P. Jones

Roel Schroeven

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

Reply via email to