1.类实例化以后,就给实例化的对象开辟了一块新的内存。
当实例化时,通过self.name=name, self.role=role 给变量(name,role)开辟了一块新的内存,同时把 r1 也传进去了,传给了self . 因为每个实例对象的name,role不一样,所以对每个实例对象都需要开辟一块新的内存来保存数据。
但是方法( shot() )还是保存在类的内存中, 因为方法里面的内容是一样的,所以没有必要copy很多份,这样也是为了节省内存。
class Role(object): def __init__(self ,name ,role ,weapon ,life_value=100 ,money=15000): self.name = name self.role = role def shot(self): #在类里面每写一个方法,都必须至少有个self参数。 print("shooting...") r1=Role("alex","police","AK47") #生成一个角色 print(id(Role)) print(id(r1))
C:abccdxdddOldboypython-3.5.2-embed-amd64python.exe C:/abccdxddd/Oldboy/Py_Exercise/Day6/aaa.py 13287896 9252648