鱼C论坛

 找回密码
 立即注册
查看: 3112|回复: 2

[已解决]import语句是否最好放在函数开头?放在函数中有什么含义吗?

[复制链接]
发表于 2019-9-29 13:56:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在纠结要不要把所有的import都放在脚本开头。
在别人的代码中看到import放在函数中的用法,上网查了下放在脚本开头和放在函数中基本是一样的:https://segmentfault.com/q/1010000016581802

既然import语句放在函数中增加了复制地址的时间;基本规范是import语句放在脚本开头;并且import语句全部放在脚本开头,也有利于他人了解这个脚本引用了哪些库。那么什么场景下,import放于函数中的用法比较有利呢?还是尽量不要这么使用,都放到脚本开头就好?
最佳答案
2019-9-30 09:05:46
在编写代码过程中,我们可能需要多种多样的模块,需要注意的是最好把 import 放在代码的开头。

为什么呢?

解释器在执行语句时,遵循作用域原则。

因为这和作用域有关系,如果在顶层导入模块,此时它的作用域是全局的。

如果在函数内部导入了模块,那它的作用域只是局部的,不能被其它函数使用。

如果其它函数也要用到这个模块,还需要再次导入比较麻烦。

在用 import 语句导入模块时最好按照这样的顺序:python 标准库模块 -》python 第三方模块 -》自定义模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-29 19:29:13 | 显示全部楼层
尽量放到脚本开头,这样更规范
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-30 09:05:46 | 显示全部楼层    本楼为最佳答案   
在编写代码过程中,我们可能需要多种多样的模块,需要注意的是最好把 import 放在代码的开头。

为什么呢?

解释器在执行语句时,遵循作用域原则。

因为这和作用域有关系,如果在顶层导入模块,此时它的作用域是全局的。

如果在函数内部导入了模块,那它的作用域只是局部的,不能被其它函数使用。

如果其它函数也要用到这个模块,还需要再次导入比较麻烦。

在用 import 语句导入模块时最好按照这样的顺序:python 标准库模块 -》python 第三方模块 -》自定义模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 22:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表