Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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_Built In - Fatal编程技术网

有没有办法保护python中的内置程序?

有没有办法保护python中的内置程序?,python,built-in,Python,Built In,我的问题源于,用户在不知情的情况下重新绑定内置的全局集,弄糊涂了。有没有一种简单的方法可以让python在您试图重写内置函数时发出警告 我更具体地想到了Mathematica。在Mathematica中,所有内置的属性都受保护。如果您尝试重新定义集,它将告诉您集受保护,并保持不变,可能会使您避免以后在应该工作的事情没有明显原因停止时出现大量混乱。如果你真的想重新定义Set,你仍然可以这样做——你只需要先Unprotect。你也可以保护你自己的符号,防止它们被意外地重新定义 也许有经验的蟒蛇玩家不

我的问题源于,用户在不知情的情况下重新绑定内置的全局
,弄糊涂了。有没有一种简单的方法可以让python在您试图重写内置函数时发出警告

我更具体地想到了Mathematica。在Mathematica中,所有内置的属性都受保护。如果您尝试重新定义
,它将告诉您
受保护,并保持不变,可能会使您避免以后在应该工作的事情没有明显原因停止时出现大量混乱。如果你真的想重新定义
Set
,你仍然可以这样做——你只需要先
Unprotect
。你也可以
保护你自己的符号,防止它们被意外地重新定义

也许有经验的蟒蛇玩家不需要这个,但是如果有像我这样的新手可以使用的话,那就太好了。(想想看,我为Mathematica编程已经15年了,而且受到
保护
偶尔也会保存我的培根。)

使用

将生成此警告:

[W0622,集合]重新定义内置“集合”


您可以在写入文件后在文件上运行它,或者在Vim中使用它。大多数IDE也会生成此类信息

n不,Python不会警告您设置阴影内置的名称。这是你自己的责任。有时命名变量
id
只是一张罚单,我不想每次这样做时都被警告内置的
id()
函数。
pylint
会检测到这一点,但只有关键字(例如
def
for
)被“保护”如果你担心这类事情,就用一根短绒;一个好的过梁会警告你这一点,还有更多。@hustmphrr:如果有人已经盗用了这些名字,那实际上不会保护你的环境。您最好使用来引用内置函数。然而,这对OP没有帮助;他们担心自己会意外地对内置程序进行阴影处理。@MartijnPieters好的,我不太理解这个问题。谢谢——这很有帮助。我看到的唯一限制是,它在交互式会话中没有多大帮助。我想知道在ipython中添加某种自动化的线头有多难?
def set():
    pass