特别单身人士(如无)

时间:2013-07-10 20:48:57

标签: python

我如何制作一个特殊的单身人士,比如None? (我是python的新手。)

我希望能够做到这一点:

def create_mutations(d):
    return [
        Mutation(c, v)
        if v is not CellAction.Delete else
        Mutation(c, isDelete=True)
        for (c, v) in d
        ]

像这样使用:

create_mutations({'a': 5, 'b': None, 'c': CellAction.Delete})

这将创建一个包含三个突变的列表,意思是“将a设置为5,将b设置为None,然后删除c。”< / p>

关键是在create_mutations的定义中,我无法使用... if v is not None else ...因为“set bNone”和“delete {{之间没有区别1}}。“

我可以澄清问题是否不清楚。

3 个答案:

答案 0 :(得分:6)

您可以在模块或类中的某个位置实例化object,如下所示:

Delete = object()

这对大多数情况来说已经足够了。

答案 1 :(得分:3)

只需制作一些物品并给它命名。一个空类将会:

class Delete:
    pass

或者,正如迈克尔所说,object实例。

如果您计划使用is进行测试,那么您使用的任何对象都应该是可变的; Python习惯于共享不可变对象的实例。 (例如,所有空元组都是同一个对象。)

答案 2 :(得分:1)

嗯,简单的答案是你不能(好吧,你可能,但那不是你想做的事。)

你可能只是在这里使用一个类,例如DeleteCell = object()(或者,你可以拥有一个CellAction类或模块,里面有各种动作(其他类)。)