Python/Django:数据库模型中字段"type"的同义词(保留的内置符号)

Alp*_*Alp 20 python django model

我创建了一个django项目.它包含一个带有"type"属性的模型类.我认为"类型"是描述该字段的最合适的术语,因为它定义了条目的类型.

class Vehicle(models.Model):
    TYPE = (
        (u'car', u'Car'),
        (u'motorcycle', u'Motorcycle'),
        (u'airplane', u'Airplane'),
    )

    type = models.CharField(max_length=100, choices=TYPE)
Run Code Online (Sandbox Code Playgroud)

我不太喜欢"善良"或"类别",因为它们不像"类型"那样通用.

问题

Assignment to reserved built-in symbol: type
Run Code Online (Sandbox Code Playgroud)
  1. 这是一个警告,这是一个问题吗?
  2. 如果是,我有什么选择?
  3. 你有一个很好的替代术语"类型"?

And*_*ett 14

  1. 拥有一个影响python内置函数的变量名称总是一个坏主意 .它会让读取代码的人感到困惑,他们希望类型具有特定的含义.对于其他用户的可读性不那么重要,它也可以抛弃语法高亮.
  2. 重命名变量.(真的,这是最好的事情 - 你可以离开它,但现在重命名虽然很容易)
  3. 有很多可能的选择,或许classification还是category.我知道你说你不喜欢category,但我看不出有什么不通用的呢?

对于您的特定应用程序来说可能会有点过分(需要知道更多),但django确实支持模型继承.


Dan*_*man 14

我不同意其他答案.没有必要改变这一点.

在我看来,几乎没有混淆的风险,因为除了通过实例,你永远不会访问该属性.my_vehicle.type不容易混淆(例如)type(my_vehicle).

  • 这应该是公认的答案.Django创建了一个名为`id`的字段,而`id()`是一个Python内置函数.没有人会混淆这两者.同样的故事也没问题. (9认同)