今天来聊一聊关于类使用中需要注意的内容,软件编程的思想往往是顺序执行与硬件描述语言不同。硬件描述语言如verilog是并行的思想,所以代码块前后位置并没有影响。然而,软件的编程思想就完全不一样,严格按照顺序编译code。举个例子:
图一(a)
图一(b)
图二(a)
图二(b)
很明显两存在区别,图一print只执行5次,但是图二print却执行了6次。
然而,今天要讲的类在定义时没有严格的顺序要求,你可以先定义Point, 在定义Line,即使在Line类中使用了Point的方法。同样你也可是先定义Line,再定义Point,即使Line中使用了Point的中的方法,python这种自由是令人欣赏的。However,有一点需要主要,那就是类对象的初始化赋值以及实力化对象是有严格的顺序要求,在我的观点里类定义完成之后的使用相当于是正常的软件编程,但是定义类就很自由。如果Line类使用了Point类中的方法,那么Point类就必须先进行类对象的初始化赋值,否则将会报错,例如出现:NameError: name ‘p1’ is not defined,出现的原因就是你使用了Point类中的方法,但是你没有使用Point类进行实例化或者没有初始化赋值。
最后贴出前文中提到关于定义的Point类和Line类的相关代码