特殊的单身汉(像没有一样)

2024-06-16 10:44:30 发布

您现在位置: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
        ]

这样使用:

^{pr2}$

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

关键是在create_mutations的定义中,我不能使用... if v is not None else ...,因为这样就没有了“将b设置为None”和“删除b”之间的区别

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


Tags: nonereturnifisdefcreatenotdelete
3条回答

您只需在模块或类中的某处实例化一个object,如下所示:

Delete = object()

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

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

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

简单地制作一些对象并给它一个名字。空类可以:

class Delete:
    pass

或者,正如Michael所说,一个object实例。在

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

相关问题 更多 >