如何识别 Python 中的默认方法值设置?
How to recognize default method value setting in Python?
考虑 Python 中使用默认参数值的以下 class 方法定义:
class X
..
def batch(self, param="foobar", limit=2):
...
然后,用户可以不带参数地调用它,就像
x.batch()
结果:参数值被替换为默认值。
想象一下,在这种情况下,您想告诉用户这样的话:
WARNING the batch size has been set to a default value 2.
问题:有没有办法回溯以某种方式拦截以识别它(除了简单地将此初始化和验证逻辑移动到构造函数方法之外)?
您无法检测到何时使用了默认值,但也许是这样的?
import warnings
class X
..
def batch(self, param="foobar", limit=None):
if limit == None:
limit = 2
warnings.warn(...)
...
考虑 Python 中使用默认参数值的以下 class 方法定义:
class X
..
def batch(self, param="foobar", limit=2):
...
然后,用户可以不带参数地调用它,就像
x.batch()
结果:参数值被替换为默认值。
想象一下,在这种情况下,您想告诉用户这样的话:
WARNING the batch size has been set to a default value 2.
问题:有没有办法回溯以某种方式拦截以识别它(除了简单地将此初始化和验证逻辑移动到构造函数方法之外)?
您无法检测到何时使用了默认值,但也许是这样的?
import warnings
class X
..
def batch(self, param="foobar", limit=None):
if limit == None:
limit = 2
warnings.warn(...)
...