【发布时间】:2009-09-18 17:48:09
【问题描述】:
我有一个模型需要有一个名为 complex 的字段和另一个名为 type 的字段。这些都是python保留名称。根据 PEP 8,我应该分别将它们命名为 complex_ 和 type_,但是 django 不允许我使用尾随下划线命名的字段。处理这个问题的正确方法是什么?
【问题讨论】:
我有一个模型需要有一个名为 complex 的字段和另一个名为 type 的字段。这些都是python保留名称。根据 PEP 8,我应该分别将它们命名为 complex_ 和 type_,但是 django 不允许我使用尾随下划线命名的字段。处理这个问题的正确方法是什么?
【问题讨论】:
这些例子没有问题。只需使用complex 和type。您只是在非常有限的范围内(类定义本身)进行遮蔽。之后,您将使用点符号 (self.type) 访问它们,因此没有歧义:
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class Foo(object):
... type = 'abc'
...
>>> f = Foo()
>>> f.type
'abc'
>>> class Bar(object):
... complex = 123+4j
...
>>> bar = Bar()
>>> bar.complex
(123+4j)
>>>
【讨论】:
您真的要使用 db_column="complex" 参数并将您的字段命名为其他名称吗?
【讨论】: