构造函数
__init__
self.name = name #属性,成员变量,字段
def sayhi() #方法,动态属性
公有属性
在类中直接定义的属性,大家都可以用
私有属性
__两个下划线定义,外部不可以访问,内部可以访问
class Role(object):
nationality = "China" #公有属性
def __init__(self, name, role, weapon, life_value=100, money=15000):
self.name = name
self.role = role
self.weapon = weapon
self.life_value = life_value
self.money = money
self.__heart = "正常"
def shot(self):
print("%s is shooting..." % self.name)
def got_shot(self):
print("ah...,%s got shot..." %self.name)
self.__heart = 'Die' #私有属性
print(self.name,self.__heart)
def get_heart(self):#对外部提供的只读访问接口
return self.__heart
def buy_gun(self, gun_name):
print("%s just bought %s" % (self.name, gun_name))
self.weapon = gun_name
r1 = Role('Hunter', 'police', 'AK47') #生成一个角色
r2 = Role('Jack', 'terrorist', 'B22') #生成一个角色
Role.nationality = "USA" #更改类的公有属性
r1.nationality = "US" #更改自己的公有属性值
print(r1.name)
print(r1.get_heart())
r1.got_shot()
r1._Role__heart#强制访问私有属性
返回:
Hunter
正常
ah...,Hunter got shot...
Hunter Die
析构方法
def _del_(self):
print("del……run……")
del r1
import time
time.sleep(5)
返回:
del……run……
ps:当内存被人工释放时执行程序断,适用类似于程序退出后,然后执行的一些类似关闭端口服务等收尾工作。