首页 > 代码库 > 1.25 Python知识进阶 - 封装
1.25 Python知识进阶 - 封装
示例代码:
class Role(object):
count = 0
def __init__(self,name,role,weapon,life_value=http://www.mamicode.com/100,money=15000):
self.name = name
self.role = role
self.weapon = weapon
self.life_value = life_value
self.money = money
self.__heart = "normal"
def shot(self):
print("shooting...")
def got_shot(self):
print("ah...,I got shot...")
self.__heart = ‘Die‘
def buy_gun(self,gun_name):
print("just bought %s" %gun_name)
r1 = Role(‘Alex‘,‘police‘,‘AK47’) #生成一个角色
r2 = Role(‘Jack‘,‘terrorist‘,‘B22’) #生成一个角色
分析代码
构造方法:函数__init__称为构造函数,或构造方法,用于执行类的实例的初始化工作。
析构方法:函数__del__称为析构函数,或析构方法,用于实现销毁类的实例所需要的操作。通过del语句,可强制销毁一个对象实例。
实例方法:又称为公有方法。类方法的第一参数一般为self,这种方法称为实例方法。像shot函数都是实例的方法,如果写成__shot就是私有方法。变成私有方法,就不能直接访问,但是可以在其他方法中访问。
属性:类的数据成员是在类中定义的成员变量,用来存储描述类的特征的值。
实例属性:通过self.变量名定义的属性,称为实例属性,也称为实例变量,成员属性,成员变量。示例代码中,在构造方法__init__中定义的self.name等就是实例属性。
初始化:
一般在__init__方法中初始化
self.实例变量名 = 初始值
访问:
在其他函数中访问:
self.实例变量名 = 值 # 写入
self.实例变量名 # 读取
在通过对象实例访问:
obj1 = 类名() # 创建对象实例
obj1.实例变量名 = 值 # 写入
obj1.实例变量名 # 读取
私有属性:通常,以两个下划线开头,但是不以两个下划线结束的属性称为私有属性。私有属性不能直接被访问,但是可以在方法中访问。示例代码中,self.__heart就是私有属性,只能在方法中进行调用。
强制访问方法:r1._Role__heart 就可以在外部访问到
类属性:声明属于类本身的变量,即类的属性,也称为类变量、静态属性,有的称它是公有属性。示例代码中,count就是类的属性
初始化:
类变量名 = 初始值
访问:
类名.类变量名 = 值 # 写入
类名.类变量名 # 读取
1.25 Python知识进阶 - 封装