正在使用"类型"作为属性名称是一种不好的做法?

时间:2015-06-01 14:00:57

标签: python django

我有以下django模型:

class SomeProfile(models.Model):
    type = models.CharField(max_length=1)

使用"输入"作为属性名称被视为不良做法?

此处属性不是阴影"键入",因此它与this one

的问题不同

3 个答案:

答案 0 :(得分:8)

它没有任何问题。它不是python's reserved keywords的成员。

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

答案 1 :(得分:3)

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

如果你真的想使用其中一个名字,只需在最后添加_(例如type_)。

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

答案 2 :(得分:0)

是的 - 这是不好的做法。从关键字角度来看,type是非常通用的词,但不是保留关键字。即使它在您的应用程序中当前没有给出任何问题,但它可能会在将来提供,因为它可能已经在一些已经存在的库或python扩展中使用。

示例:类型用作获取变量

TypeCast信息的函数
name = "John"
age = 12

print type(name)
## Above line will return "<type 'str'>"

print type(age)
## Above line will return "<type 'int'>"

type用作attribute是一种不好的做法。