标签:init 初始 实例 style %s 开头 类的方法 内存 调用
class Role: n = 123 #类变量,存在类的内存里 name = "我是类name" 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 def __del__(self): pass #print("%s 彻底死了"%self.name) def show_status(self): print("name : %s weapon:%s life_value:%s"%(self.name,self.weapon,self.__life_value)) def __shot(self): #类的方法,功能(动态属性)
# 两个下划线开头,声明该方法为私有方法,不能在类地外部调用。
print("shooting...") def got_shot(self): print("ah...,I got shot...") def buy_gun(self, gun_name): print("%s just bought %s" % (self.name,gun_name)) #类开辟一块新的内存空间指向r1这个变量名,存下面的东西,name= alex,等 # 调用Role(‘Alex‘, ‘police‘,‘AK47‘)的时候把r1当作参数也传进去,是为了把‘Alex‘,‘police‘,’AK47’这3个值跟刚开辟的r1关联起来, # 相当于Role(r1,‘Alex‘, ‘police‘,‘AK47‘),self就是r1, # 关联起来后,你就可以直接r1.name, r1.weapon 这样来调用啦
#为实现这种关联,在调用__init__方法时,就必须把r1这个变量也传进去,即传进去谁,self就是谁,否则__init__不知道要把那3个参数跟谁关联
#所以这个__init__(…)方法里的,self.name = name , self.role = role 等等的意思就是要把这几个值 存到r1的内存空间里,
# 即 r1 = Role(r1,‘Alex‘, ‘police‘,‘AK47‘) # r1.name="alex" # r1.role="Police" # r1.buy_gun("AK47") # Role.buy_gun(r1)
# #把一个类变成一个具体对象的过程叫实例化(初始化一个类,造了一个对象) # #生成一个角色 # r2 = Role(‘Jack‘, ‘terrorist‘,‘B22‘) # #生成一个角色 # r1.buy_gun("AK47") # Role.buy_gun(r1) # print(Role.n) r1 = Role(‘Alex‘, ‘police‘,‘AK47‘) r1.buy_gun("AK47") r1.got_shot() # print(r1.__life_value) r1.show_status() # del r1 r2 = Role(‘Jack‘, ‘terrorist‘,‘B22‘) r2.buy_gun("AK47") r2.got_shot()
标签:init 初始 实例 style %s 开头 类的方法 内存 调用
原文地址:https://www.cnblogs.com/wengshaohang/p/12332416.html