创建类和对象

类和对象

  面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。

  类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物

创建一个类:

#类的创建可以通过两种方式:经典类和新式类

#构造函数,在实例化时做一些类的初始化工作
#析构函数  在实例释放、销毁的时候自动执行的,通常做一些收尾性的工作,如关闭一些数据库连接、关闭打开的临时文件
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)

 

posted @ 2017-02-21 19:32  似是故人来~  阅读(188)  评论(0编辑  收藏  举报