我需要定义:1。'init'的doctests创建一个半径为2.5的圆'c1',并检查访问属性'radius'是否返回2.5。 2.为'area'定义doc测试,创建一个半径为2.5的圆'c1',并检查它的计算面积是19.63。
我写了下面提到的代码,但没有得到输出。请建议。
class Circle:
def __init__(self, radius):
"""
>>> c1=Circle(2.5).__init__()
2.5
"""
self.radius = radius
def area(self):
"""
>>> c1=Circle(2.5).area()
19.63
"""
return round(math.pi*(self.radius**2),2)
__init__()
不返回半径,而是返回您创建的Circle
对象。如果您将doctest更新为类似的内容
>>> Circle(2.5).radius
2.5
它应该工作。另请注意,您不应该直接调用__init__()
,这就是Circle(2.5)
所做的。在你的情况下你应该得到一个错误,因为你没有传递适量的参数。
这就是你的doctests课程可能写的方式:
import math
class Circle:
def __init__(self, radius):
"""
>>> c1 = Circle(2.5)
>>> c1.radius
2.5
"""
self.radius = radius
def area(self):
"""
>>> c1 = Circle(2.5)
>>> c1.area()
19.63
"""
return round(math.pi*(self.radius**2),2)
这就是你应该如何运行doctest
以获得详细输出:
$ python -m doctest -v file.py
Trying:
c1 = Circle(2.5)
Expecting nothing
ok
Trying:
c1.radius
Expecting:
2.5
ok
Trying:
c1 = Circle(2.5)
Expecting nothing
ok
Trying:
c1.area()
Expecting:
19.63
ok
2 items had no tests:
file
file.Circle
2 items passed all tests:
2 tests in file.Circle.__init__
2 tests in file.Circle.area
4 tests in 4 items.
4 passed and 0 failed.
Test passed.