Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
Description
This is sort of inspired byPEP 713, but I think it's worth doing whether that PEP is accepted or not.
When somebody attempts to call a module, we can provide a more helpfulTypeError
message than'module' object is not callable
. Instead, we can check if the module has a callable attribute with the same name:
>>>importpprint>>>pprint(thing)Traceback (mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'module'objectisnotcallable.Didyoumean:'pprint.pprint(...)'?
As somebody who hits this fairly frequently with modules likedis
anddatetime
, I think that this error message could reduce some confusion for beginners and friction for experienced users.
This is a cold code path, and I assume that this error is the most common reason for hitting it with a module object. So a little extra code (just one branch for non-modules) shouldn't be noticeable at all.
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status