我在读我的电子图书:
import math
class QuadError( Exception ):
pass
def quad(a,b,c):
if a == 0:
ex = QuadError( "Not Quadratic" )
ex.coef = ( a, b, c )
raise ex
if b*b-4*a*c < 0:
ex = QuadError( "No Real Roots" )
ex.coef = ( a, b, c )
raise ex
x1= (-b+math.sqrt(b*b-4*a*c))/(2*a)
x2= (-b-math.sqrt(b*b-4*a*c))/(2*a)
return (x1,x2)
虽然我理解尝试。。。除了函数内部的东西,我无法理解。。。 我理解它的作用,例如我使用了quad(4,2,4),它给了我一个“No Real root”错误,或者quad(0,b,c) 但是我不明白程序本身是如何工作的。。。 所以
^{pr2}$名为“ex”的变量获取值:quaderError(“Not Quadratic”) 所以程序会搜索包含pass命令的quaderor类???!那它为什么要打印消息???我希望有类似。。。在
class QuadError( Exception ):
print Exception
下一件事我没看穿的是那句台词:
ex.coef = ( a, b, c )
那是什么??? coef是命令吗?它有什么作用吗?在
谢谢各位!:)
下面是从
Exception
派生的类的定义,也称为它的子类。它的主体是空的(它没有向基类添加新的行为或属性),因此使用pass
语句,因为类主体中必须包含某些内容。在在本部分代码中:
^{pr2}$它正在创建新类的一个实例,并向它传递一个字符串,该字符串将成为异常的
message
属性,并在打印异常时显示。ex.coef
赋值将添加该名称的属性,该属性的值是具有系数值的元组。这本身并不是很有用,但是其他代码可以尝试访问添加的属性并以某种方式使用这些值。但是,在您的代码中没有这样做的例子。在在我的选择中,最好是将系数值添加到异常消息本身,以便它们与异常消息一起打印。在
我的意思是:
输出:
相关问题 更多 >
编程相关推荐