在python中,如果您需要来自不同包的模块,则必须导入它.来自Java背景,这是有道理的.
import foo.bar
Run Code Online (Sandbox Code Playgroud)
什么是没有意义的,为什么每当我想使用酒吧时我需要使用全名?如果我想使用全名,为什么我需要导入?不使用全名立即描述我正在寻址的模块?
from foo import bar当这import foo.bar应该做什么时,似乎有点多余.当我打算使用全名时,为什么我必须导入也有点模糊.
我有以下文件 app.py
class Baz():
def __init__(self, num):
self.a = num
print self.a
def foo(num):
obj = Baz(num)
Run Code Online (Sandbox Code Playgroud)
和第二个文件 main.py
from app import foo
foo(10)
Run Code Online (Sandbox Code Playgroud)
运行该文件python main.py会给出正确的输出。
现在在第二个文件中,我只是导入函数而不是类,尽管成功执行我的函数也需要类。
导入函数时,Python 会自动导入运行该函数所需的所有其他内容,还是会自动搜索当前目录中的类?