使用"type"作为属性名称是一种不好的做法吗?

Alv*_*aro 7 python django

我有以下django模型:

class SomeProfile(models.Model):
    type = models.CharField(max_length=1)
Run Code Online (Sandbox Code Playgroud)

使用"type"作为属性名称被认为是一种不好的做法?

这里的属性不是阴影"类型",所以它与这个不是同一个问题

rne*_*ius 8

这没什么不对.它不是python保留关键字的成员.

但是,命名方法type()可能会令人困惑......

  • 它比Django使用`id`的方式更令人困惑?`id()`也是内置的...... (3认同)
  • 是的我不认为它会混淆任何人,因为没有命名类或实例(例如SomeProfile.type或instance.type)就没有机会访问它 (2认同)

sir*_*rfz 6

一般规则是:不要使用已采用的名称(例如typefileint等),无论它们是否在“保留”关键字列表中(因为 python 允许,所以它并不是真正的“保留”)。这对于避免在您实际需要使用真实对象时遇到麻烦(没有注意到您在本地覆盖它)非常重要。

如果您确实想使用这些名称之一,只需_在末尾附加(例如type_)。

在您的情况下,由于您指定type为类属性,因此它应该被认为是安全的,因为它只能通过其类(self.typeSomeProfile.type)访问。