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
为啥可以这样?
谢谢啊
展开
 我来答
IT168
2022-11-07 · 百度认证:IT168官方账号,优质数码领域创作者
IT168
IT168是中国最大的个人和企业IT产品选购、互动网站,每日提供最新的IT产品报价、促销行情、手机、平板、笔记本、相机和企业等50个频道提供最专业的产品选购和使用建议。
向TA提问
展开全部
Python语言变量命名规则变量名只能包含字母、数字和下划线。
变量名可以字母或下划线开头,但不能以数字开头。
例如,可将变量命名为message_1,但不能将其命名为1_message。变量名不能包含空格,但可使用下划线来分隔其中的单词。
以下示例,变量名greeting_message可行,但变量名greetingmessage会引发错误。
不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。变量名应既简短又具有描述性。慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;
注意:应使用小写的Python变量名。
驼峰命名法当变量名是由二个或多个单词组成时,还可以利用驼峰命名法来命名。
小驼峰式命名法第一个单词以小写字母开始,后续单词的首字母大写。
大驼峰式命名法每一个单词的首字母都采用大写字母。
思想者_独行
2015-02-01
知道答主
回答量:5
采纳率:0%
帮助的人:2.7万
展开全部
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 这两个属性
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
涂伟忠
2014-05-12 · 超过27用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:62.6万
展开全部

不是这样的,是模块名,加变量名,或者是类名加成员变量的名

比如

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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东带白火远5
2015-11-10
知道答主
回答量:25
采纳率:0%
帮助的人:7.9万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式