最好的做法是始终从类方法“返回”

时间:2016-03-13 17:11:58

标签: python methods

在使用其他几种语言后,我正在深入学习Python。为了成为'pythonic'并从最佳实践的角度来看,一个类的方法总是会返回(即使是None)?在某些语言中,需要(或首选)始终具有显式的return语句。

例如,一种改变状态但不完全返回值的方法:

def change_player():
    if self._player == 'X':
        self._player = 'Y'
    elif self._player == 'Y'
        self._player = 'X'
    else: 
        pass

在函数结束时是否应该有明确的return语句?

4 个答案:

答案 0 :(得分:2)

通常应使用例外而非返回码来表示错误。如果您期望从函数或方法获得某种输出,则返回值是可接受的。您的代码应该如下所示:

{{1}}

以下是关于如何在Python中使用异常是一种更简洁的处理方式的讨论:sorted

答案 1 :(得分:1)

方法应该设置属性或返回值,而不是一次性。所以你的方法完全是pythonic。

def change_player():
    if self._player == 'X':
        self._player = 'Y'
    elif self._player == 'Y'
        self._player = 'X'

答案 2 :(得分:1)

肯定不需要返回声明。

至于是否包括一个好的风格,我会说不 - 但这基本上是一个意见问题。

答案 3 :(得分:1)

当某个功能修改某个功能时,它会产生副作用。 Python是一种灵活的语言,允许您按照一定的限制进行操作。但是,一个函数应该专门做一些非常简短的事情,例如:

  • 接收参数,对其执行某些操作,然后返回新值
  • 接收参数,使用该值修改某些内容,然后引发一个 如果流程不成功则例外。
  • 什么都不接收,修改内容,如果出现错误或者至少返回一个标志(即一个整数)来引发异常,以通知函数的状态。

最好返回一些内容或引发异常,以便始终知道该函数是否可以避免安静的错误/副作用。在严格的函数式编程中,函数根本不应产生任何副作用。