当前位置: 首页 > 知识库问答 >
问题:

如何在Python中识别默认方法值设置?[重复]

宇文俊风
2023-03-14

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

class X
..

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

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

x.batch()

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

想象一下,在这种情况下,你想告诉用户这样的事情:

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

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

共有1个答案

拓拔麒
2023-03-14

您无法检测何时使用默认值,但也许像这样?

import warnings


class X
..

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

    ...
 类似资料:
  • 问题内容: 我在使用react-select时遇到问题。我使用redux表单,并且使我的react-select组件与redux表单兼容。这是代码: 这里是我如何渲染它: 但是问题是我的下拉菜单没有我希望的默认值。我做错了什么?有任何想法吗? 问题答案: 我猜你需要这样的东西:

  • 问题内容: 我可以在angularjs中使用默认值设置一个下拉列表, 如何使用来达到相同的效果?我胆战心惊, 但是没用。样品小提琴在这里 问题答案: 使用 为设定的默认值。 这是: 演示

  • 问题内容: 有没有一种方法可以在共享首选项中设置默认值? 这是我的负载偏好代码 这是我的保存偏好代码 问题答案: 当您使用键和值设置首选项时,实际上是在提供该值。因此,这次不必使用默认值。请参见,在检索该值时,如果以前未设置该值,则可以定义一个默认值。 如果您得到strSavedMem1 =“ default”,那么肯定是默认情况,因为您没有在首选项中为MEM1设置任何其他值

  • 问题内容: 以下问题有多种答案/技术: 如何为golang结构设置默认值? 如何在Golang中初始化结构 我有几个答案,但需要进一步讨论。 问题答案: 强制方法获取结构(构造方法)。 一个好的设计是使您的类型不导出,但提供一个类似NewMyType()的导出构造函数,您可以在其中正确初始化struct / type。还返回接口类型而不是具体类型,并且该接口应包含其他人希望对您的值进行的操作。当然

  • 以下问题有多种答案/技巧: 如何为golang结构设置默认值? 如何在 golang 中初始化结构 我有几个答案,但需要进一步讨论。

  • 我使用Java和Jackson库将JSON文件解析为Java类。我的问题是,如果值为null或空,我无法设置默认值。有可能吗?现在,我只是把它写在setters部分。 例如,我有一个JSON文件 在我的Java类中,如果值为null或空,我想将其设置为Java函数。 举个例子 所以,如果设置了这个值,那么就是它。如果不是,那应该是美国。