python 类属性 实例属性
程序员文章站
2022-05-08 16:17:59
...
class Tool(object):
num = 0 #类属性
def __init_(sekf, new_name)
self.name = new_name
tool1 = Tool("铁锹")
tool2 = Tool("工兵铲")
tool3 = Tool("水桶")
当创建出一个对象后,这个对象多出了一个属性,这个属性保存了这个类的一个引用,同理当创建第二第三个对象时,他们都多出了一个属性,为了节省空间仅仅在 TOOL 处存放了一份代码,当你真正去调用这个功能时 我并没有从对象空间自己去调,而是看这个特殊变量指向了谁,指向了谁就向谁那里调用方法;
比如,创建tool1对象时,(先看右边!!!此时too1并未指向这个实例对象!!)在内存中创建一块空间保存Tool实例对象,然后调用__init__ 方法,这里请注意__init__ 方法并不存在Tool实例对象空间 而是在Tool类空间,而Tool实例对象此时有一个特殊属性,当tool对象调用__init__方法时 这个特殊属性指向 Tool类,从而在Tool类中调用__init__ 方法!__init__ 方法执行时self指向实例对象tool1!,向Tool实例对象添加一个属性叫name(铁锹)!执行完后返回引用给tool1, 此时too1指向第一个Tool类实例对象!
类在程序里面也是对象,称为类对象,通过类的名字创建的对象称为-实例对象, 实例对象里的属性成为实例属性,
类属性在对象*享,