Python 的内置函数是否不能用作关键字默认值,或者我应该使用其他方式来引用函数?
我想写一个这样的函数:
def isPNGBlock(bytes, blockLen, pngOffset=0, pngErrorLogger=print):
...
try:
r.validate_signature()
width, height, pixels, metadata = r.read(lenient=True)
except png.Error as e:
pngErrorLogger(e)
相反,我不得不使用默认参数 None 作为标志值来解决这个问题。
def isPNGBlock(bytes, blockLen, pngOffset=0, pngErrorLogger=None):
...
try:
r.validate_signature()
width, height, pixels, metadata = r.read(lenient=True)
except png.Error as e:
if pngErrorLogger is None:
print(e)
else:
pngErrorLogger(e)
或使用包装函数:
def defaultLogger(str):
print(str)
def isPNGBlock(bytes, blockLen, pngOffset=0, pngErrorLogger=defaultLogger ):
...
try:
r.validate_signature()
width, height, pixels, metadata = r.read(lenient=True)
except png.Error as e:
pngErrorLogger(e)