实用:python中的模块导入

本文详细探讨了Python中模块的导入机制,包括查找路径顺序、模块初始化、主模块与子模块的区别、模块的层级关系以及如何进行跨层级导入。同时,文章还介绍了模块中的访问控制,包括如何访问保护变量和私有变量,并通过示例展示了导入时的注意事项。
摘要由CSDN通过智能技术生成
from os.path import exists
print(exists)
print(dir())

print('============================================')
from os.path import exists as e
print(e)
print(dir())

print('============================================')
import os
print(os.path.exists)
print(os.path.__dict__['exists'])
print(dir())

运行结果:

<function exists at 0x7f77489c28c8>
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'exists']
============================================
<function exists at 0x7f77489c28c8>
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'e', 'exists']
============================================
<function exists at 0x7f77489c28c8>
<function exists at 0x7f77489c28c8>
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'e', 'exists', 'os']

模块的查找路径顺序

import sys
for i in sys.path:
    print(i)

运行结果:

/home/yzx/PycharmProjects/python
/home/yzx/PycharmProjects/python
/usr/lib/python35.zip
/usr/lib/python3.5
/usr/lib/python3.5/plat-x86_64-linux-gnu
/usr/lib/python3.5/lib-dynload
/home/yzx/PycharmProjects/python/venv/lib/python3.5/site-packages
/home/yzx/PycharmProjects/python/venv/lib/python3.5/site-packages/setuptools-40.8.0-py3.5.egg
/home/yzx/PycharmProjects/python/venv/lib/python3.5/site-packages/pip-19.0.3-py3.5.egg

查看初始化后模块的加载详情:

import sys
for i in sys.modules.items():
    print(i)

执行结果:

('abc', <module 'abc' from '/usr/lib/python3.5/abc.py'>)
('_weakref', <module '_weakref' (built-in)>)
('_bootlocale', <module '_bootlocale' from '/usr/lib/python3.5/_bootlocale.py'>)
('stat', <module 'stat' from '/usr/lib/python3.5/stat.py'>)
('_stat', <module '_stat' 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值