用C#的朋友都知道,我们创建了某个类的实例之后想给该实例其中一个属性赋值的话,这个属性必须在类中提前声明好,比如:
public Class House
{
public int Width{get;set;}
}
House h = new House();
h.Width=50;
而在Python中,可以在没有声明属性和方法的情况下给类的实力绑定它们,比如我们有这样一个类:
class House(object):
pass;
上面这个类里面没有任何属性,但是我们可以给它的实例绑定属性,操作如下:
h = House()
h.width = 50
在这段代码中,我们给House的实例h绑定了一个属性width,并给它赋予了一个int型的值50.这样我们就可以访问实例h的width属性了,如下:
print h.width
代码执行结果:
现在h这个实例已经具有width这个属性了,那么House其他实例是不是也具有这个属性呢?答案是No!
上面的错误提示:House对象没有width这个属性。
所以我们给一个类的某个实例绑定属性的时候,这个类的其他属性是没有获得这个属性的。