extent是一个默认参数,如果不给出该参数值那么该参数就使用默认值None。circle(r)等价于circle(r, None)或circle(r, extent=None)。如果要指定参数extent那么调用应该写成circle(r, xxx)或circle(r, extent=xxx)。
更多追问追答
追问
可是extent是一个 角度值,提供个None是什么意思
还有默认情况下circle(r)画了个整圆,extent默认不应该是360吗,circle(r)等价于circle(r, 360)啊?
追答
turtle.circle(radius, extent=None, steps=None)
描述: 以给定半径画圆
参数:
radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆
extent(弧度) (optional);
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)
如果不提供extent,那么就画一个圆,等价于circle(radius, 360);否则,画一个圆的一部分,弧度为extent。如circle(r, 180),表示画半个圆,半径为r。
追问
? 这个我知道,我追问的不是这个。。
追答
那么你想问的是什么。
追问
我只是举了circle的例子 想问的是参数为None是什么意思?
circle(r,None) 为什么等价于 circle(r, 360)
print('abc',end=None) 为什么等价于 print('abc',end='\n')
好像参数=None的,和不指定该参即保持默认值是等价的,为什么呢。
追答
这是一个很简单的转换,circle函数内部肯定会去检查参数extent的值,如果为None那么就将extent赋值为360.
circle函数源码:if extent is None:
extent = self._fullcircle
其他函数类似。