以下代码是否是在Python中编写异常的正确方法?
class Calculator:
def power(self,n,p):
self.n=n
self.p=p
if self.n>=0 and self.p>=0:
return self.n**self.p
else:
return ("n and p should be non-negative")
myCalculator=Calculator()
T=int(input())
for i in range(T):
n,p = map(int, input().split())
try:
ans=myCalculator.power(n,p)
print(ans)
except Exception as e:
print(e)
power
返回一个可能要引发异常的字符串。另外,还应检查n
和p
before,以修改对象。 (我将不进一步讨论power
为什么设置属性。)
class Calculator:
def power(self, n, p):
if n < 0 or p < 0:
raise ValueError("Both arguments should be non-negative")
self.n = n
self.p = p
return self.n ** self.p
myCalculator = Calculator()
T = int(input())
for i in range(T):
n, p = map(int, input().split())
try:
ans = myCalculator.power(n,p)
print(ans)
except Exception as e:
print(e)