“Field”和“Fields”是Django还是Python中的保留字?

2024-09-30 05:24:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个django农业项目。我想将一个应用程序命名为“fields”,在app“fields”中,我想将一个模型命名为“Field”(指农民田间地头)。在

我试过了,它起作用了,所以我假设“fields”和“Field”不是Django或Python中的保留字。但我只是想知道在将来使用这些词会有问题还是没事?在

还有一个普遍的问题: 有什么方法可以检查Django或Python中是否保留了一个单词?


Tags: 项目django模型app应用程序fieldfields命名
2条回答

有趣的小解释

答案很简单

因为语言只有权拥有任何东西。Python是房子的所有者 Django的家伙正在给Python的家伙付租金。那么,Django guy怎么能保留房子的物品呢?在

同样的逻辑在这里也适用

严格地说,“保留字”在这里是错误的。保留字是编程语言的属性,Django不是一种语言。在

在Django中,django.db.models.fields包中有一个名为Field的类,在django.forms.fields包中有另一个同名的类(类似但不同)。在

但是,这些Field类是非常低级的类,您不太可能需要导入它们,因此它们不会干扰您自己的Field类。在

在任何情况下,正如您所看到的,在Django内部,同一个类可以存在于多个同名包中。这很好,因为包名充当名称空间,所以您始终可以使用类的完整包名来完全限定类。在

Python中另一个有用的功能是导入具有不同名称的类:

from django.db.models.fields import Field as DjangoField
help(DjangoField)

同样,导入具有不同名称的包:

^{pr2}$

这样,您就可以避免类名和包名之间的冲突。在

相关问题 更多 >

    热门问题