Python里的包内导入的注意点有哪些
Admin 2022-12-24 群英技术资讯 1293 次浏览
这篇文章主要介绍“Python里的包内导入的注意点有哪些”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python里的包内导入的注意点有哪些”文章能帮助大家解决问题。在 python 中,会看到 _xx, xx 以及 __xx 这样的变量或者函数名,在这里做一个简要的总结。
_xx:保护(protected)变量或函数,意思是只有类对象和子类对象能够访问到这些变量,不能用 ‘from module import *’ 导入。当变量或函数是私有的时候,用 _xx 来表示是很好的习惯。;__xx:私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据;_xx_:代表 python 里特殊方法专用的标识,如 _init_() 代表类的构造函数。变量名 _xx_ 对 python 来说有特殊含义,对于普通的变量应当避免这种命名风格。下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,应避免用下划线作为变量名的开始。
既然上文说到了包的导入,就顺便把 python 的包内导入规则说一下,分为绝对导入与相对导入。
在 3.0 以前的旧版本中启用相对导入等特性所必须的 _future_ 语句:
from __future__ import absolute_import
python 包的概念:包含 _init_.py 文件的目录,该文件在包导入时会被首先执行,该文件可以为空,也可以在其中加入任意合法的 python 代码。
相对导入的特点:可以避免硬编码带来的维护问题,例如我们改了某一顶层包的名,那么其子包所有的导入就都不能用了。
但是 存在相对导入语句的模块,不能直接运行,否则会有异常:
ValueError: Attempted relative import in non-package
尽管使用相对导入看起来像是浏览文件系统,但是不能到定义包的目录之外。也就是说,使用点的这种模式从不是包的目录中导入将会引发错误。
绝对导入的特点:可以避免与标准库命名的冲突,实际上也不推荐自定义模块与标准库命令相同。
与软编码的区别是,软编码可以在运行时确定,修改;而硬编码是不能够改变的。
举个例子:
例如求圆的面积问题,那么 3.14*r*r 就是硬编码,而 PI*r*r 就不是硬编码。
把数值写成常数而不是变量即硬编码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代理IP,从而保
混淆矩阵(Confusion Matrix)是机器学习中用来总结分类模型预测结果的一个分析表,是模式识别领域中的一种常用的表达形式。它以矩阵的形式描绘样本数据的真实属性和分类预测结果类型之间的关系,是用来评价分类器性能的一种常用方法。
Python内置函数-sum()函数。sum() 方法对系列进行求和计算。
写文章的时候有时需要matlab导出清晰的图片,如果直接用figure里面的保存的话不够清晰,下面这篇文章主要给大家介绍了关于如何从Matlab中导出清晰的结果图片的相关资料,需要的朋友可以参考下
这篇文章主要为大家详细介绍了Python编程的四个关键点,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008