面向对象1

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:\abccdxddd\Oldboy\python-3.5.2-embed-amd64\python.exe C:/abccdxddd/Oldboy/Py_Exercise/Day6/aaa.py
13287896
9252648

 

posted on 2017-07-28 11:53  momo8238  阅读(99)  评论(0编辑  收藏  举报