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引用变
相关问答:
已知Python 中:
s = unicode("测试", "gb2312")
s = u'\u6d4b\u8bd5'
print s
测试
在Delphi里面如何将\u6d4b\u8bd5这样的还原成Gb2312的汉字呢?
找到个方法
......
python的PIL库自带的方法只能进行矩形的切割,如果我有了一个多边形各个顶点的坐标,如何对现有的图片按照这个多边形进行切割呢?
不一定要用PIL库,任何能实现这个功能的方法都行。
图片切割的js不是很多吗?
......
C#里面用using System.Security.Cryptography; RSACryptoServiceProvider加密过的消息
用Python Crypto中RSA的方法 能直接 解吗?
RSA加密方式不是统一的吗?需要注意些什么?
有帮助。但是没解决问题。。。
......
如何将Python写的一段代码生成pyd形式的库?
我知道的方法有:将这段Python代码扩展成C代码,然后通过VC将这段C代码生成后缀为.pyd的动态链接库。
不想用这么笨的方法,请问有没有比较简单的方法?谢谢!
顶一下, ......
map,filter方法应该会返回一个列表。
但是在我这里,它们总是返回:
<map object at 0x0000000002A2C978>
<filter object at 0x0000000002A2C9E8>
我用的python3.1, 这个也是版本的变动导致的吗? ......