机器学习实战中的代码defplotNode(nodeTxt,centerPt,parentPt,nodeType):createPlot.ax1.annotate(nodeTxt,xy=parentPt,xycoords='axesfraction',xytext=centerPt,textcoords='axesfr...
机器学习实战中的代码
def plotNode(nodeTxt, centerPt, parentPt, nodeType):
createPlot.ax1.annotate(nodeTxt, xy=parentPt, xycoords='axes fraction',
xytext=centerPt, textcoords='axes fraction',
va="center", ha="center", bbox=nodeType, arrowprops=arrow_args )
def createPlot():
fig = plt.figure(1, facecolor='white')
fig.clf()
createPlot.ax1 = plt.subplot(111, frameon=False) #ticks for demo puropses
plotNode('a decision node', (0.5, 0.1), (0.1, 0.5), decisionNode)
plotNode('a leaf node', (0.8, 0.1), (0.3, 0.8), leafNode)
plt.show()
求问:def的函数内 直接用“函数名.变量名”直接变成全局变量了?如:createPlot.ax1? 是这个意思吗?还是其他意思
因为上面的代码def createPlot():中定义createPlot.ax1
在def plotNode(nodeTxt, centerPt, parentPt, nodeType):中调用也用了createPlot.ax1
而不是createPlot.createPlot.ax1
为啥可以这样?
谢谢啊
展开