首页 > 解决方案 > 如何识别 Python 中的默认方法值设置?

问题描述

考虑使用默认参数值在 Python 中的以下类方法定义:

class X
..

    def batch(self, param="foobar", limit=2):
    ...

然后,用户可以在没有参数的情况下调用它,就像

x.batch()

结果:参数值被默认值替换。

想象一下,在这种情况下,您想告诉用户以下内容:

WARNING the batch size has been set to a default value 2.

问题:有没有办法回溯或者以某种方式拦截以识别它(除了简单地将这个初始化和验证逻辑移动到构造函数方法之外)?

标签: pythonmethodsdefault-value

解决方案


您无法检测到何时使用默认值,但可能是这样的?

import warnings


class X
..

    def batch(self, param="foobar", limit=None):
        if limit == None:
            limit = 2
            warnings.warn(...)

    ...

推荐阅读