![]() |
1
19
理论上是的,你可以开始把积垢喷到内置的容器里:
但是,不要这样做;这是可怕的邪恶会给你的应用程序编程癌症。
将它们放入模块中,并在需要使用时导入它们。
如果必须有不合格的值,只需将它们放入名为mypackage/constants.py的文件中,然后:
如果它们确实是变量,在应用程序执行期间更改它们,则需要开始将它们封装到对象中。 |
![]() |
2
4
即使有,也不应该使用这样的构造。考虑使用Borg模式来保存这种东西。
这里我们使用borg模式创建一个singlton对象。无论您在代码中的何处使用它,“myvalue”都是相同的,无论您在哪个模块或类中实例化config。 |
![]() |
3
4
在多年的实践中,我对Python的导入系统感到非常失望:它很复杂,很难正确处理。此外,我必须在我编写的每个模块中维护大量的导入,这是一个PITA。 名称空间是一个很好的主意,而且它们是必不可少的——PHP没有合适的名称空间,这是一个混乱的地方。 从概念上讲,编写应用程序的一部分包括定义一个合适的词汇表,这些词汇表是用来完成您想要做的事情的。然而,在经典的方式中,正是这些单词不会变得容易,因为您必须首先导入它,然后导入它以获得访问权限。
当名称空间在JavaScript社区中成为焦点时,jQueryFame的JohnResig决定提供一个
同样,我用一个全局变量进行了实验
这些天,除了标准的库和站点包,我几乎完全放弃了导入系统。大多数时候,我为软管库编写包装器,因为90%的库无论如何都有无意义的复杂接口。然后,我在全局命名空间中发布这些包装器,使用拼写约定将冲突风险降至最低。 我这样说只是为了缓解这样一种印象,即修改全局名称空间本身就是一种邪恶的东西,而其他的答案似乎都在说明这一点。不是这样。邪恶的是不加考虑地去做,或者被语言或包装设计强迫去做。
让我补充一句话,因为我几乎肯定会在这里受到一些攻击:99%的导入是由那些虔诚地维护名称空间纯度的人完成的
错误的
. 证明?你将阅读任何模块的开头几行
我肯定会用这些观点引起一些热烈的评论,所以继续说吧。 |
![]() |
4
3
创建空的superglobal.py模块。
|
![]() |
5
1
你不明白的原因是,python故意不支持这样的东西。命名空间是 特征 使用它们对你有利。如果需要在另一个文件中定义的内容,请将其导入。这意味着,通过阅读源代码,您可以找出所有东西的来源,并使代码更易于测试和修改。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Henry · 使用Python将json重新格式化为键值对 2 年前 |
![]() |
eymentakak · json字典类型错误:字符串索引必须是整数 2 年前 |
![]() |
Qubix · 从熊猫数据帧创建相对熵矩阵 2 年前 |
![]() |
guiguilecodeur · 如何删除我的词汇表中的重复元素 2 年前 |
![]() |
Susheel P M · 这是关于if-else语句[关闭] 2 年前 |
![]() |
Slartibartfast · 关于Python版本安装 2 年前 |