26

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

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)

我不太喜欢“种类”或“类别”,因为它们不像“类型”那么通用。

问题

Assignment to reserved built-in symbol: type
  1. 这是一个警告,那么这是一个问题吗?
  2. 如果是,我有什么选择?
  3. 您对“类型”一词有什么好的替代方法吗?
4

3 回答 3

19

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

在我看来,混淆的风险很小,因为除非通过实例,否则您永远不会访问该属性。my_vehicle.type不容易与 (eg) 混淆type(my_vehicle)

于 2012-05-09T12:31:21.937 回答
18
  1. 拥有一个隐藏 python 内置函数之一的变量名总是一个坏主意 。它会使阅读您的代码的人感到困惑,他们希望 type 意味着特定的东西。对其他用户来说,它的可读性不如可读性重要,它还可以消除语法高亮。
  2. 重命名变量。(这真的是最好的办法——你可以离开它,但现在重命名它很容易)
  3. 有很多潜在的选择,也许是classificationcategory。我知道你说你不喜欢category,但我看不出它有什么不一般的地方?

对于您的特定应用程序来说,这可能是过大的杀伤力(需要了解更多),但 django 确实支持模型继承

于 2012-05-09T12:20:55.880 回答
1

好吧,警告或错误,我会避免总是冒像您这样的情况的风险:) 在我看来,您可以做的更好的事情是更改变量名称而不会失去任何意义或凝聚力。如果仅用于该特定类别,您可以将其称为“v_type”,意思是车辆类型的缩写。如果您要扩展该类,您将使用另一种车辆类型对其进行扩展,因此在您的情况下“v_type”将适合。

于 2012-05-09T12:22:05.837 回答