python 变量的命名 5
机器学习实战中的代码defplotNode(nodeTxt,centerPt,parentPt,nodeType):createPlot.ax1.annotate(nod...
机器学习实战中的代码
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
为啥可以这样?
谢谢啊 展开
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
为啥可以这样?
谢谢啊 展开
4个回答
2022-11-07 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
Python语言变量命名规则变量名只能包含字母、数字和下划线。
变量名可以字母或下划线开头,但不能以数字开头。
例如,可将变量命名为message_1,但不能将其命名为1_message。变量名不能包含空格,但可使用下划线来分隔其中的单词。
以下示例,变量名greeting_message可行,但变量名greetingmessage会引发错误。
不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。变量名应既简短又具有描述性。慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;
注意:应使用小写的Python变量名。
驼峰命名法当变量名是由二个或多个单词组成时,还可以利用驼峰命名法来命名。
小驼峰式命名法第一个单词以小写字母开始,后续单词的首字母大写。
大驼峰式命名法每一个单词的首字母都采用大写字母。
变量名可以字母或下划线开头,但不能以数字开头。
例如,可将变量命名为message_1,但不能将其命名为1_message。变量名不能包含空格,但可使用下划线来分隔其中的单词。
以下示例,变量名greeting_message可行,但变量名greetingmessage会引发错误。
不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。变量名应既简短又具有描述性。慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;
注意:应使用小写的Python变量名。
驼峰命名法当变量名是由二个或多个单词组成时,还可以利用驼峰命名法来命名。
小驼峰式命名法第一个单词以小写字母开始,后续单词的首字母大写。
大驼峰式命名法每一个单词的首字母都采用大写字母。
展开全部
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 这两个属性
example:
def fun():
fun.x =1
当你在python的命令窗口下,运行一次fun()后,x 就是 fun()的一个属性,你在命令窗口下输入
fun.x 后面会显示 1
也可以 在 函数定义完后加入 属性 如 fun.y = 2,在使用 dir(fun),你就会发现fun有 x,y 这两个属性
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是这样的,是模块名,加变量名,或者是类名加成员变量的名
比如
class People:
name = "wz"
实例化后,可以用
p = People()
p.name
再比如一个模块
people.py
里面的代码有
name = 'wz'
你在另一个脚本上导入它
import people
people.name
但是函数里的就是不可以这样用,可以百度"自强学堂 在线教程"学习python
追问
people.name 可以这样被调用我明白,我不清楚如果在people内部就取名people.name,那别人调用他岂不是要people.people.name?
追答
如果people.py这个模块内部有一个class是 People
这要看你如何调用了
import people
people.People.name # 一般不这么用
p = people.People() # p是People的一个实例
p.name
from people import People
p = People() # p是People的一个实例
p.name
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
python通过函数属性实现全局变量的方法:
In [14]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:def add(x=1):
: try:
: add.sum += x
: except AttributeError:
: add.sum = x
: return add.sum
:print add(3)
:print add(4)
:print add(10)
:--
3
7
17
In [14]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:def add(x=1):
: try:
: add.sum += x
: except AttributeError:
: add.sum = x
: return add.sum
:print add(3)
:print add(4)
:print add(10)
:--
3
7
17
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询