Beginning in Python 3.7 it is possible to define __dir__() on a module. But what if you want to take the "normal" output of dir(module) and add or remove from it?
__dir__()
dir(module)
For instance, I would like to do something like this:
def __dir__(): dir_out = super().__dir__()[:] # does not work dir_out.pop('Optional') # get rid of the typing imports return dir_out
Obviously because a module is not a normal class, the super() call does not work. But is there another way?
super()
Use the globals() command to get what normally would appear in dir:
globals()
def __dir__(): dir_out = list(globals()) dir_out.pop('Optional') # get rid of the typing imports return dir_out
2.1m questions
2.1m answers
60 comments
57.0k users