易截截图软件、单文件、免安装、纯绿色、仅160KB

python中的类中属性元素加self.和不加self.的区别

学习PyQt,发现其中一段脚本是这样的:
class Form(QDialog):
  ........
  amountLabel = QLabel("Amount")
  self.amountLabel = QLabel()
  ........

python中的类中属性元素加self.和不加self.的区别是什么?这两个变量都在类定义中。
一样的,如果你不加,解释器也会帮你加上.

一楼说的不对吧,那个amountLabel 和self.amountLabel 定义了两个不同的标签,显示的时候也会显示两个标签,怎么能说一样的呢

加和不加居然是两个变量,太神奇了吧?搞不懂啊~


2个不同概念吧

Python code:

>>> class T(object):
... def __init__(self):
... val = 1
... self.val = 2
... print id(val)
... print id(self.val)
...
>>> t = T()
135716664
135716652
>>> print id(t.val)
135716652





...
  amountLabel = QLabel("Amount")
  self.amountLabel = QLabel()

  layout.addWidget( amountLabel)
  layout.addWidget(self.amountLabel)
...

这里加了2个label

下面是深入 Python :Dive Into Python 中文版中的一段话:
Python 与大多数其它语言一样有局部变量和全局变量之分,但是它没有明显的变量声明。变量通过首次赋值产生,当超出作用范围时自动消亡。 

由于Python的局部变量的定义从赋值的一瞬间而产生,所以,在不使用self.amountLabel引用变


相关问答:

eric4怎么运行python程序?

python和pyqt以及Eric4都已经配置好了,打开Eric4写个python程序比如简单的
print“hello,world”,怎么编译运行了,Start菜单的所有命令都出现和图中差不多的对话框,应当怎么运行了?

求大家指教

没有人用 ......

python怎么print 'hello world'

大家好,我是一个新手,刚开始学python,但是刚开始的helloworld都没法打印,让我很无奈。
我的python安装路径为f:\python31。在path中也设置对了,在windows下运行是这样显示的,希望各位前辈指点一下。谢谢
Pyth ......

python list中添加类对象的问题

在list中添加一个类的局部变量 这样做是否合法 请看下面例子:
Python code:

class A():
def __init__( self ):
self.__a = 0
self.__b = 'hello'
def get_a( self ):
ret ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号