3

我将如何制作一个特殊的单身人士,比如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})

这将创建一个包含三个突变的列表,意思是“设置a5、设置bNone和删除c”。

关键是在create_mutationsI cannot use的定义中,因为“set to ”和“delete ”... if v is not None else ...之间没有区别。bNoneb

如果问题不清楚,我可以澄清一下。

4

3 回答 3

6

object你可以像这样在你的模块或类中实例化一个地方:

Delete = object()

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

于 2013-07-10T20:51:50.240 回答
3

只需制作一些对象并为其命名。一个空的类会做:

class Delete:
    pass

或者,正如迈克尔所说,一个object例子。

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

于 2013-07-10T20:52:20.370 回答
1

嗯,简单的答案是你不能(嗯,你可以,但这不是你想做的)。

您可能应该在这里只使用一个类,例如DeleteCell = object()(或者,您可以有一个CellAction类或模块,其中包含各种操作(其他类))。

于 2013-07-10T20:55:22.290 回答