您可以在指定默认参数时使用self吗?

2024-04-26 05:49:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一些java代码转换为python等效代码,以便能够在两者之间进行接口。因此,在Java中,我有如下代码:

public int[] toArray(boolean order) {
    return toArray(order, this.length());
}
public int[] toArray(boolean order, int length) {
    ...
}

python中的逻辑等价物可能如下所示:

def to_array(self, order):
  return self.to_array(order, self.length())
def to_array(self, order, length):
  ...

除了。。。python不允许函数重载,而是允许使用默认参数,因此,同样,您希望执行以下操作似乎是合乎逻辑的:

def to_array(self, order, length = self.length()):
  ...

然而。。。这在python中也是不允许的,可能是因为self在函数体中才真正“存在”

那么,在python中,正确的方法是什么呢?还是不可能

编辑:我意识到我在java代码中使用了void函数,它应该返回一个值,所以现在它们返回int[]


Tags: to函数代码selfreturndeforderjava
1条回答
网友
1楼 · 发布于 2024-04-26 05:49:14

python的方法是使用None作为默认值,然后对其进行测试:

def to_array(self, order, length=None):
    if length is None:
        length = self.length()

相关问题 更多 >

    热门问题