python 变量的命名
机器学习实战中的代码 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 为啥可以这样? 谢谢啊
最满意答案
createPlot.ax1 是表示: ax1 是函数 createPlot 的一个属性,这个可以在函数里面定义也可以在函数定义后加入也可以 example: def fun(): fun.x =1 当你在python的命令窗口下,运行一次fun()后,x 就是 fun()的一个属性,你在命令窗口下输入 fun.x 后面会显示 1 也可以 在 函数定义完后加入 属性 如 fun.y = 2,在使用 dir(fun),你就会发现fun有 x,y 这两个属性更多推荐
发布评论