实例变量的初始化

说实例之前必须先来说下类:
类:类是一类事物的抽象模板,用代码语言描述就是一堆共性代码通过类来进行封装。封装成类后可以通过这个类来创建多个独立的实例,类里面提供实例属性(即在类的实例方法中通过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’

个人练习的一些记录以备查阅,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值