import pg1.b:这种方式会导入pg1包下的b模块,但是你需要通过pg1.b这样的全名来引用b模块中的任何内容。例如,如果b模块中有一个函数func,你需要使用pg1.b.func()来调用它。
from pg1 import b:这种方式也会导入pg1包下的b模块,但是它会将b模块直接放在当前的命名空间中,所以你可以直接通过b.func()来调用b模块中的函数,而不需要前缀pg1。
这两种写法都可以正常工作,但是它们有一些不同的用途和考虑因素:
如果你只需要b模块中的一部分内容,并且不想污染当前的命名空间,你可能会选择使用import pg1.b,然后只使用pg1.b前缀来引用你需要的内容。
如果你需要经常使用b模块中的内容,并且想要简化代码,你可能会选择使用from pg1 import b,这样你就可以直接通过b来引用模块中的内容了。
然而,需要注意的是,如果b模块和当前模块或其他已经导入的模块有命名冲突(即它们有同名的函数、类、变量等),使用from ... import ...可能会导致意外的行为或错误。因此,在某些情况下,使用import ...可能是一个更安全的选择。