【问题标题】:Using instance variable in Python class function definition [duplicate]在 Python 类函数定义中使用实例变量 [重复]
【发布时间】:2016-11-10 20:59:23
【问题描述】:

如何将类定义中的默认值设置为类的实例变量之一?

class SomeClass:
    def __init__(self, data):
        self.data = data

    def do_something(self, data_file=self.data):  # Here

        # modify the data and return to itself using recursion.
        if something:
            return self.do_something(data_file)
        else:
            return data_file

【问题讨论】:

  • 函数默认值在创建函数时确定一次。它们不是在每次调用该方法时创建的。
  • “我想使用递归,所以我无法访问函数内部的值” - 不清楚你为什么认为这两件事会在一起。
  • Jonrsharpe 将我链接到一个也被标记为重复的问题。
  • @Red2awn:是的,我也是。那里有一个规范,但乔恩和我都提供了更多背景信息。

标签: python python-3.x oop recursion


【解决方案1】:

使用另一个值,并检查它:

def do_something(self, data_file=None):
    if data_file is None:
        data_file = self.data

    ...etc...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2021-01-14
    相关资源
    最近更新 更多