美文网首页
day17 循环导入 项目规范 json模块

day17 循环导入 项目规范 json模块

作者: 荭鲤鱼与緑鲤鱼与驴 | 来源:发表于2020-07-24 21:21 被阅读0次

Ⅰ  循环导入

    循环导入原理类似于递归函数,是一个循环的过程,在一个模块首次导入的过程中触发了第二个模块的导入,而第二个模块又触发了第一个模块的导入

我们在主文件导入m1;然后m1第一次导入的时候会将m1里面的全局空间内的变量运行一遍,所以就触发了将m2的y导入到m1里面,到m2的时候又触发了将m1的x导入到m2,因为m1里面导入未完成,所以m1里面的x还未放置到m1的全局空间内,m2无法调用,导致会报错

针对上面的问题有两种解决方法:第一种就是将m1和m2的导入功能移动到所有全局变量的后面,让两个模块先将名字放到内存中,然后就可以正常调用了

cv大法,将调用移动到最后面,确保所有变量名被扔到模块空间之后就可以正常调用 添加函数,因为函数是在定义阶段,只检测语法错误,在后续调用中模块已完成将所有全局变量存入空间的操作,所以就可以正常调用了

Ⅱ  模块的搜索路径与查找优先级

我们在导入模块时,python会拿着我们需要导入的模块名先从内存中查找是否存在,然后再从内置的模块中查找,最后会从sys.path列表内多个文件依次检索.内存和内置的模块或者第三方库都是python自带的,如果我们需要导入自定义的模块的话,我们就要将模块放到python能找到的地方,比如:当前执行文件的目录下,或者使用sys.path.append(r'模块路径')将我们的模块导入到path里面的路径集内

将模块添加到路径集 模块在python解释器中目录下

查看一个文件是执行文件还是被当作模块调用的时候可以用到,作为一个判断

当前文件在直接执行时,__nam__的值为main ,当文件被当作模块调用时,__name__的值为模块名

Ⅲ  json模块

    json模块是一个第三方的数据格式,支持将各种变成语言的数据类型转成json类型,并可以转成其他变成语言的数据类型输出,使数据共享;json工作分为两个过程:序列化:以python为例,python产生的数据==>json格式==>字符串==>写入文件中(数据,可以共享);反序列化:比如:其他语言从程序想要使用python产生的数据:从硬盘中的文件中读取数据==>字符串==>json数据格式==>转为其他语言的数据类型

json具体使用

相关文章

网友评论

      本文标题:day17 循环导入 项目规范 json模块

      本文链接:https://www.haomeiwen.com/subject/jtmslktx.html