Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模块名称重新定义内置的_Python_Coding Style_Naming Conventions_Conventions - Fatal编程技术网

Python 模块名称重新定义内置的

Python 模块名称重新定义内置的,python,coding-style,naming-conventions,conventions,Python,Coding Style,Naming Conventions,Conventions,我正在用Python制作一个游戏,将我的一个模块命名为“map”是有意义的。我首选的导入方式是: from mygame import map 然而,正如派林告诉我的那样,这是对内置函数的重新定义。处理这个问题的一般方法是什么?以下是我可以做出的选择: 1) 忽略pylint警告,因为我不使用内置映射 2) 改为: import mygame 然后在我的代码中引用mygame.map 3) 将我的地图模块重命名为其他模块(hexmap、gamemap等) 我倾向于(2),但我想看看别人怎么想

我正在用Python制作一个游戏,将我的一个模块命名为“map”是有意义的。我首选的导入方式是:

from mygame import map
然而,正如派林告诉我的那样,这是对内置函数的重新定义。处理这个问题的一般方法是什么?以下是我可以做出的选择:

1) 忽略pylint警告,因为我不使用内置映射

2) 改为:

import mygame
然后在我的代码中引用mygame.map

3) 将我的地图模块重命名为其他模块(hexmap、gamemap等)


我倾向于(2),但我想看看别人怎么想。

这是主观的;没有正确的答案

也就是说,对我来说,3是唯一明智的选择。真的真的不做1;覆盖内置几乎从来都不是一个好主意,在这种情况下,它尤其令人困惑。2更好,但我认为仍然有一种期望,即任何名为
map
的函数都会执行与内置函数类似的操作


也许
映射

选项2或3可行,但我认为重命名
映射
最容易理解,这样就不会混淆了。这样,您就可以获得引用
map
而不是
mygame.map
所提供的简洁性,但在范围方面不会有任何问题。另外,我认为map是一个不太规范的变量名,所以最好给它一个更具体的名称。

quot:

显式优于隐式。
面对歧义,拒绝猜测的诱惑。
应该有一个——最好只有一个——显而易见的方法来做到这一点


mygame.map
map
更明确
mygame.board
mygame.terrain
mygame.map
更清晰。猜测代码是否在谈论
\uuu内置的.map
mygame.map
是可怕的,而且大多数情况下都是错误的。

我认为
mapping
会被局外人视为与字典之类的数据结构有关,而不是一个游戏地图,它是一个模块的名称,而不是一个函数。它包含用于十六进制平铺贴图、单个十六进制平铺、辅助函数等的类@Colin:抱歉,已编辑。为什么不
映射
@雷夫:没错;我认为在这种情况下,背景已经足够了。