这是在python中编写异常的正确方法吗?

问题描述 投票:0回答:1

以下代码是否是在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)   
python function class exception
1个回答
2
投票
您只是从power返回一个可能要引发异常的字符串。另外,还应检查np

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)
© www.soinside.com 2019 - 2024. All rights reserved.