python实例对象,现在我们可以用实例对象作什么?实例对象唯一可用的操作就是属性引用。有两种有效的属性名。
数据属性 相当于 Smalltalk 中的“实例变量”或 C++ 中的“数据成员”。和局部变量一样,数据属性不需要声明,第一次使用时它们就会生成。例如,如果 x
是前面创建的 MyClass
实例,下面这段代码会打印出 16 而在堆栈中留下多余的东西:
x.counter = 1 while x.counter < 10: x.counter = x.counter * 2 print x.counter del x.counter
另一种为实例对象所接受的引用属性是 方法 。方法是“属于”一个对象的函数(在 Python 中,方法不止是类实例所独有:其它类型的对象也可有方法。例如,链表对象有 append,insert,remove,sort 等等方法。然而,在后面的介绍中,除非特别说明,我们提到的方法特指类方法)。
实例对象的有效名称依赖于它的类。按照定义,类中所有(用户定义)的函数对象对应它的实例中的方法。所以在我们的例子中,x.f
是一个有效的方法引用,因为 MyClass.f
是一个函数。但 x.i
不是,因为 MyClass.i
不是函数。不过 x.f
和 MyClass.f
不同,它是一个 方法对象,不是一个函数对象。