创建类和对象
类和对象
面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。
类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物
创建一个类:
#类的创建可以通过两种方式:经典类和新式类
#构造函数,在实例化时做一些类的初始化工作 #析构函数 在实例释放、销毁的时候自动执行的,通常做一些收尾性的工作,如关闭一些数据库连接、关闭打开的临时文件 class Role: #经典类 新式类:class Role(object) 继承自object父类 n=123 #类变量 name='我是类变量' def __init__(self,name,role,weapon,value=100,money=1500):#构造函数,通过类创建对象时,自动触发执行。 """ self接收变量名,如r1。 :param name: :param role: :param weapon: :param value: :param money: """ self.name=name #实例变量(静态属性),作用域就是实例本身, self.role=role self.weapon=weapon self.value=value self.money=money #上面这几个的意思是要把这几个值存到对象的内存空间里 def __del__(self):#析构函数 pass #print("%s彻底死了"%(self.name)) def buy_guy(self):#类的方法,功能 (动态属性),self,就是实例本身!你实例化时python会自动把这个实例本身通过self参数传进去, print("%s want to buy a guy..."%(self.name)) def got_shot(self): print('%s got a shot'%(self.name)) r1=Role('Mike','police','Ak')#Role(r1,Mike,police,Ak)实例化 把一个类变成一个具体对象的过程叫实例化(初始化) r1.got_shot()#-->=Role.got_shot(r1) r1.bullet_proof_vest=True #新添加一个属性,但只属与r1这个角色所有 del r1.weapon #删除r1的weapon属性 print(r1.weapon) print(Role.n) print(r1.n,r1.name) print(r1.n,r1.name,r1.bullet_proof_vest) #总结: # 1.上面的这个r1 = Role('Mike','police','AK’)动作,叫做类的“实例化”, 就是把一个虚拟的抽象的类通过这个动作,变成了一个具体的对象了, 这个对象就叫做实例 # 2.刚才定义的这个类体现了面向对象的第一个基本特性,封装,其实就是使用构造方法将内容封装到某个具体对象中,然后通过对象直接或者self间接获取被封装的内容
#类变量用途 节省内存,节省开销
class Person: cn='China'#共用 def __init__(self,name,age,addr): self.name=name self.age=age self.addr=addr P1=Person('Mike',30,'中国广东') print(P1.cn)