Discuss / Python / 对于两个实例变量,拥有的变量名称都可能不同,为什么啊

对于两个实例变量,拥有的变量名称都可能不同,为什么啊

Topic source

bart = Student('Bart Simpson', 59) lisa = Student('Lisa Simpson', 87) bart.age = 8 bart.age 8 lisa.age Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Student' object has no attribute 'age'

这个为什么啊,不太懂,求解

SuperMPLS

#2 Created at ... [Delete] [Delete and Lock User]

不是说python可以动态绑定实例变量吗? 所以使用语句: bart.age = 8 相当于动态给bart这个实例增加了一个变量age,里面保存了8 所以可以输出bart.age里的值 而lisa并没有动态增加过age变量,所以直接使用lisa.age会报错咯~

因为可以动态绑定,所以同一个类下的实例对象也会拥有不同的实例变量……应该是这么理解的吧~

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

楼上的理解是对的

黑加加

#4 Created at ... [Delete] [Delete and Lock User]

attribute 不是属性么? 为什么不叫动态绑定实例属性,要交动态绑定实例变量? “属性”和“变量”有什么不同?

廖雪峰

#5 Created at ... [Delete] [Delete and Lock User]

没啥不同,叫法不同

破晓江旭

#6 Created at ... [Delete] [Delete and Lock User]

每一次实例化,都会产生独立的具体的个体 比如人是一个类,是一个模板,是抽象的 你和我是人这个类的实例(对象),是一个具体的,有鼻子有眼,看的见摸得着,但是我和你必然有些差异的,独立的,你有的我不一定有,在这里你有age的值了,可以告诉别人你的年龄,但是我没有,因为我已经不知道活了多久了,没有人能定义我年龄,我必然无法告诉别人我的年龄


  • 1

Reply