跨文件夹导入模块
'''
import导入的方式,到文件结束,不能直接导入文件中的某一个变量名或者说对象
import 文件夹.文件夹.文件夹.文件
导模块中的.语法左侧必须为文件夹
from 文件夹.文件夹.文件 import 变量名
'''
模块的两种被执行方式
'''
自执行和被导入执行
__name__ = __main__
__name__ = 模块名
当一个py文件自执行的时候,__name__就等于__main__
当一个py文件作为模块被导入执行,__name__就等于文件名(模块名)
if __name__ == '__main__':
自执行的逻辑
pass
if 判断语句可以帮助我们在模块被导入执行的时候不被自执行
'''
文件头
'''
# coding = utf-8 特殊注释,必须要有#
# coding : utf-8
可以加一些花里胡哨的东西
比如:# -*- coding : utf-8 -*
'''
包
'''
一系列模块的集合体,,用文件夹来管理一系列有联系功能的模块,这个文件夹我们称之为包,文件夹名就是包名
注:.py文件就是一个模块,所以包含.py文件的文件夹实质上包,所以如果想要将文件夹当作包来使用,最好在
文件加上__init__.py文件,如果只想当作普通文件可以不用加__init__.py文件.
在python2中必须要有__init__.py文件,在python3中可以不加,但是解释器会自动帮你创建
我们可以通过跨文件导模块的方式来世使用包中的模块
在导包的文件中,产生一个与包名相同的名字,指向包的名称空间(就是__init__.py的全局名称空间)
__init__.py文件可以管理 包可以直接点出来使用的 名字
'''
包的管理
'''
在包中采用相对导入来管理模块或模块中的名字
在包的__init__.py文件中或者是包中任意一个模块中
.代表当前文件的所在目录
..代表当前文件所在目录的上一级
.语法不能出包,因为包外的文件都能自执行,但是拥有.开头的导入的文件不能自执行
注:自执行需要sys.path中能够找到,也就是说要有绝对路径,但是.语法中采用的相对导入,没有绝对路径存在于环境变量中
'''
环境变量
'''
sys.path这个环境变量存在于项目中,并不属于系统,所以sys.path存活于内存中,伴随着项目的启动而创建,项目的结束而销毁,在项目运行过程中,可以对环境变量进行操作.
sys.path这个环境变量的第一位存放着当前文件的绝对路径,而第二位存放当前项目的根目录的绝对路径
在pycharm中一个pycharm窗口运行的所有文件与文件夹统称为项目
'''