从方法返回元组

Raj*_*Raj 3 python

我正在编写一个方法,它会在成功但None失败时返回元组.我还没有最终确定None(作为一个失败的案例返回)但它是其中一个选择.我们可以-1,-1为失败案件返回吗?我正在寻找最好的pythonic方法来实现这一点,以便拆包很容易.

请告诉我们如何改进它.伪代码如下

 def myFunc(self):
     if self.validate() != 0:
         return
     x,y = self.getXY()

     return x,y
Run Code Online (Sandbox Code Playgroud)

And*_*ini 14

如果出现故障,为什么不提出异常?

你当然可以将(-1,-1)作为失败返回,但在我看来这不是一个好的解决方案.

请记住,在Python中,EAFP(比请求更容易请求宽恕)比LBYL更受青睐(Look Before You Leap).

这意味着在所有工作然后捕获适当的异常的假设下编写代码被认为是更好的.

然后你的代码就可以了

 def myFunc(self):
     if self.validate() != 0:
         raise CustomNotValidatedException()
     x,y = self.getXY()

     return x,y
Run Code Online (Sandbox Code Playgroud)

我会通过以下方式改进您的代码:

最后,您可以在内部引发异常getXY()并在代码中直接使用此方法.

  • +1:异常比返回奇怪的代码值更好. (2认同)