说实例之前必须先来说下类:
类:类是一类事物的抽象模板,用代码语言描述就是一堆共性代码通过类来进行封装。封装成类后可以通过这个类来创建多个独立的实例,类里面提供实例属性(即在类的实例方法中通过self.xx方式定义的变量)和实例方法,可以通过“实例对象.实例属性或实例方法” 来调用。
实例属性的初始化例子,我这里了用ipython3来演示,加深下印象:
先定义一个类:
In [120]: class B():
...: xx =0
...: def __init__(self):
...: self.name = "aau"
...: def test(self):
...: self.age =24
...: nu =100
In [121]: b = B() # 创建B类的实例对象,由b引用该对象。创建对象的时候python解释器会自动调用__init__魔法方法,如果需要传参则在__init__()方法中加上形参,创建B的实例时传入实参就可以
In [122]: b.xx #访问的是类B的类变量 xx,输出的是0
Out[122]: 0
In [123]: b.name #访问的是实例属性name,输出的是aau
Out[123]: ‘aau’
In [124]: b.age #访问的是实例属性age,输出报错,虽然是实例属性可以通过b.age来访问,但是没有运行过test()方法对该属性进行初始化,所以无法访问
AttributeError: ‘B’ object has no attribute ‘age’
In [125]: b.nu #访问test方法中的局部变量nu,报错,因为nu是test方法中的局部变量,非实例变量,无法通过 “对象.变量名” 的方式来访问
In [126]: b.test() #运行test方法,age属性初始化后可以访问,但是nu变量仍不可访问
In [127]: b.age
Out[127]: 24
In [128]: b.nu
AttributeError: ‘B’ object has no attribute ‘nu’
个人练习的一些记录以备查阅,