python模块导入

模块一共三种:python标准库、第三方模块、应用程序自定义模块。
相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

模块导入执行两件事:

(1)引入变量名(2)执行该文件

基本导入用法:
1:import module1[, module2[,... moduleN]
2:import logging as log   #用别名
3:from modname import function
4:from filename import module


#__name__的作用:在执行文件中为__main__,在被调用包中为所在文件名
#注意不要直接在功能文件包中直接写执行语句。可以写在__name__判断下
print(__name__)         # 输出__main__
作用:1.用于被调用文件测试
     2.用于防止外部调用主函数,可仅在bin文件中调用main函数执行程序
if __name__=="__main__":
    print(__name__)         # __main__
    main.run()
# 导入包在同级目录可直接
import module
或者
import module as 别名 
#from module import *  # 不推荐,容易函数重名导致覆盖和占用内存

##不在同一级目录则会按照sys.path中路径查找,首先查找当前执行文件所在路径
import sys
print(sys.path)
# ['F:\\老男孩全栈3课件\\day21\\day21\\day21_lesson', 
# 'F:\\老男孩全栈3课件\\day21', 
# 'F:\\python_virtual\\Scripts\\python36.zip', 
# 'F:\\python_virtual\\DLLs', 
# 'F:\\python_virtual\\lib',
#  'F:\\python_virtual\\Scripts', 
# 'D:\\Anaconda3\\Lib', 
# 'D:\\Anaconda3\\DLLs', 
# 'F:\\python_virtual', 
# 'F:\\python_virtual\\lib\\site-packages',
#  'D:\\Anaconda3', 'D:\\Anaconda3\\lib\\site-packages', 
# 'D:\\Anaconda3\\lib\\site-packages\\setuptools-28.8.0-py3.6.egg', 
# 'D:\\Anaconda3\\lib\\site-packages\\pip-9.0.1-py3.6.egg', '
# D:\\Anaconda3\\lib\\site-packages\\win32', 
# 'D:\\Anaconda3\\lib\\site-packages\\win32\\lib', 
# 'D:\\Anaconda3\\lib\\site-packages\\Pythonwin', 
# 'C:\\JetBrains\\PyCharm # #
#  2017.3.2\\helpers\\pycharm_matplotlib_backend']

# 只能from 当前可找到路径.下一级路径.下一级路径 import 包
# import 最后只能导入包不能导入文件
#任何被调用文件总是从执行文件路径开始查找,而非它们各自的文件路径

添加基路径的方法

# 方便查找定义在祖父级下的包
import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(os.path.abspath)))
print(BASE_DIR)
sys.path.append(BASE_DIR)
# os.path.dirname 作用:查找当前文件路径
#os.path.abspath  作用:查找当前文件绝对路径
#__file__  作用:查看当前执行文件路径
合起来可以起到查看上两级文件路径,对一般项目建立三级文件结构来说足够用了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值