“attach” a python module similar to R?

2019-08-08 20:31发布

问题:

In Python, when we import something:

import Module

when we later want to use functions created in the module we have to say

Module.foo()

Is there any way to "attach" the module so that if I simply call

foo()

It knows that I mean to use the foo defined in Module, as long as the name does not conflict with any name in the current file?

回答1:

from Module import *

This imports all symbols in Module unless overriden by __all__.

You can also explicitly import (which is better) only the symbols you actually need.

from Module import foo

It's typically preferred to use the later. Even better is to use the module as namespacing. There's nothing wrong with Module.foo() vs. foo(). Once your program gets fairly large, this will help you quite a bit with refactoring.



回答2:

You can just do from module import foo, and then refer to foo() directly.