是否有一个 python 结构是一个虚拟函数?

Is there a python construct that is a dummy function?

是否有 python 构造对应于不带参数、不执行任何操作且不返回任何内容的函数?类似于对象 None 的东西,但那将是一个函数而不是对象 ?

背景

我想定义一个 class,其中构造函数获取一个函数作为参数并将其引用到 class 属性。实例化后,用户决定 he/she 是否希望该函数成为 he/she 定义的实际函数 him/herself 或保留默认值,即调用不执行任何操作的虚拟函数。

这是我现在拥有的:

def sayHello():
    print("hello world !")

def doNothing():
    pass

class myClass:
    def __init__(self, myFunc):
        self.doIt = myFunc

myInstance = myClass(sayHello)
myInstance.doIt()
myInstance = myClass(doNothing) # Works but requires defining function doNothing()
myInstance.doIt()
#myInstance = myClass(None) # Returns error "'NoneType' object is not callable"
myInstance.doIt()

lambdas 怎么样?

myInstance = myClass(lambda:None)

当然可以将 is 默认传递给 __init__ 函数:

class myClass:
    def __init__(self, myFunc = lambda:None):
        self.doIt = myFunc

这应该有效:

class myClass:
    def __init__(self, myFunc = lambda : None):
        self.doIt = myFunc

myInstance = myClass()

这对我有用:

def none(function=True): if function==True: return None else: function()

我使用了以下内容:

a=lambda:None
a()
print a()

后一行打印None.