是否有一个 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.
是否有 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.