如何识别 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(...)

    ...