在python中添加具有关键字名称的特征

在python中添加具有关键字名称的特征,python,enthought,traits,Python,Enthought,Traits,我正在使用一个对象,它看起来像: from traits import HasTraits, Str, Enum, Bool class Parameter(HasTraits): name = Str() description = Str() required = Bool() _in = Enum(["query", "header", "path", "formData", "body"]) 但是,我想在中使用名称,因为我正在从外部源复制规范in是

我正在使用一个对象,它看起来像:

from traits import HasTraits, Str, Enum, Bool

class Parameter(HasTraits):
    name = Str()
    description = Str()
    required = Bool()
    _in   = Enum(["query", "header", "path", "formData", "body"])
但是,我想在中使用名称
,因为我正在从外部源复制规范
in
是python中的一个关键字,因此我不能简单地使用:

class Parameter(HasTraits):
    in   = Enum(["query", "header", "path", "formData", "body"])

如何在
中添加名为
的特征(或其他关键字,如
打印
)?

您可以在类定义之后进行添加,即
设置属性(参数,'in',枚举(…)
)。但请注意,您将无法将其作为常规属性访问,只能通过例如
getattr
。就像您所做的那样。添加下划线。保留字就是保留字。(即使在某种程度上这是可能的,我也不认为你应该这么做。)@jornsharpe如果你这么做,那么你的所有访问都必须相应地使用
getattr
,因为
obj.in
是一个语法错误(用2.7和3.4测试)@两位比特炼金术士我是traits模块的新手,但我可以向您展示我的用例——我正在尝试模拟这里描述的招摇过市对象:如果有更好的方法,我很乐意听到@胡克,我建议添加下划线,这正是你建议的正常做法。作为一个例子,请看。