标签:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author: wanghuafeng
#封装:将客观的事物封装成抽象的类,对信息进行隐藏。
#继承:使用现有类的所有功能,在无需编写原有类的情况下对这些功能进行扩展。从一般到特殊。
#多态:允许将子类类型赋值给分类类型的指针。
#object:顶级父类
#class:只要该脚本执行就存放到内存中,
class Role(object):
#定义防弹衣,存放到类的对象中,类属性
ac = None
#name:局部变量
#__init__:初始化函数或初始化方法
#初始化函数,需要调用时才能执行
#实例化时,存放到实例的内存对象中
def __init__(self, name, role, weapon, life_value):
#成员变量,只属于实例
self.name = name
self.role = role
self.weapon = weapon
self.life_value = life_value
def buy_weapon(self, weapon):
#self.name = p1
print("%s is buying [%s]"%(self.name, weapon))
#p1.weapon
self.weapon = weapon
print(self.ac)
#p1:Role的实例,就抽象的类变成一个具体的对象的过程,即实例化。
p1 = Role(‘xiaoming‘, ‘Police‘, ‘B10‘, 90)
#Role(‘xiaoming‘, ‘Police‘, ‘B10‘, 90)
t1 = Role(‘xiaowang‘, ‘Terrorist‘, ‘B11‘, 100)
t2 = Role(‘xiaowu‘, ‘Terrorist‘, ‘AK47‘, 100)
t3 = Role(‘xiaoha‘, ‘Terrorist‘, ‘B51‘, 100)
p1.buy_weapon(‘AK47‘)#Role.buy_weapon(p1, ‘AK47‘)
t1.buy_weapon(‘B51‘)
p1.ac = "China Brand"
t1.ac = "US Brand"
Role.ac = "Canada Brand"
#Role的内存对象中,创建weapon = "M2"
Role.weapon = "M2"
print(‘P1:‘, p1.weapon, p1.ac)
print(‘T1‘, t1.weapon, t1.ac)
#T2、T3中的weapon是实例中的weapon,与Role.weapon = "M2"无关
print(‘T2‘, t2.weapon, t2.ac)
print(‘T3‘, t3.weapon, t3.ac)
#如果直接执行buy_weapon,只是将buy_weapon存放到类的内存中,实例化时还是需要传递name告知是谁要买枪
Role.buy_weapon
标签:
原文地址:http://www.cnblogs.com/icsnow/p/5700741.html