python “from import“ 使用情况总结

总结有下面四种from import 的使用情况:

# case1

from package import module1

module1.func() # 这种情况只有module1被import, 如果要访问module1的函数, 必须加上module1. 因为当前namespace 只有module1

# case2

from package.module1 import *

func() # module1的整个命名空间都被导入,如果要访问module1的某函数, 可以直接访问,因为当前名称空间包含module的所有内容。 BTW,这种使用方式很危险

#case3

from package1 import module1 # 当前名称空间会包含module1

from package2 import module1 # 当前名称空间会overwrite package1 的 module1

# 解决方法, from package2 import module1 as newmodule1

case4:

import parentpackage.package1.module1

'''
这种情况你如果查看当前namespace, 会是这样的
['__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_pydev_stop_at_break', 'parentpackage']

所以如果你要访问module1 的函数, 必须使用全路径。like parentpackage.package1.module1.func()
'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值