对象

1) 面向对象的介绍

2) 特性 (封装,继承,多态)

3) 语法(语法、方法、构造函数、析构函数)

  析构函数:在实例释放、销毁的时候执行的,通常是一些守卫工作,关闭等等 def __del__(self)

4) 私有方法、私有属性  ##加两个__

5) 类变量、实例变量

 

继承

#py2, 经典类按深度优先来继承,新式类按广度优先来继承

#py3,经典类和新式类都是按照统一广度优先来继承的

反射

通过字符串映射或者修改程序运行时的状态、属性、方法,有4个方法

1) getattr

2) hasattr(classname, function_name)

3) setattr  - 动态的将一个外部方法传到类里面

4) delattr

异常

  try:

    code  

  except (Error1, Error2)as e:

    print(e)

class Role(object):
    abc = "abc This is class parameter!"  #类变量
    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 shot(self): #类的方法
        print(self.name+"   shooting...")

    def got_shot(self):
        print(self.name+"   ah...,I got shot...")

    def buy_gun(self, gun_name):
        print("just bought %s" % gun_name)
        self.weapon = gun_name

    def show_status(self):
        print("Name: %s, Weapon:%s, Life Value = %s"%(self.name,
                                                       self.weapon,
                                                       self.__life_value))

    def __del__(self):
        print("release the class role")

class police(Role):
    def __init__(self,name,weapon,life_value, level): ###必须先把父类的参数都写入!!!
        Role.__init__(self,name,weapon,life_value) ###调用父类的方法,将参数传递进去!!!
        self.level = level
        print("Police initial ... level %s"%self.level)

    def show_police(self):
        print("I am a policeman in POLICE CLASS! Name: %s, Weapon: %s, Level:%s"%(self.name,self.weapon,self.level))

class shoot(Role):
    def kill(self,obj):
        print("%s is killing %s"%(self.name, obj.name))

r1 = Role('Alex', 'police', 'AK47') #生成一个角色,实例化(初始化一个类,造了一个对象)
r2 = Role('Jack', 'terrorist', 'B22')  #生成一个角色

r1.name = "ddw"  #可以改class方法中的属性的值
r1.bullet_prove = True #可以为class中的方法新加一个属性
del r1.bullet_prove #可以在实例中删除一个变量

r1.shot()
r2.got_shot()

print(Role.abc +"直接打印class变量!!!")

print(r1.abc,r1.weapon)
r1.buy_gun("AAA123")
print(r1.weapon)
r1.show_status()

p1 = police("ABC","A_weapon","AK**",'3')
p1.show_police()

r3 = shoot("Louie","police","RJ233")
#r3 = shoot(r1)
r3.kill(r2)


del r1
del r2
#print(r1.abc,r1.weapon)
View Code
原文地址:https://www.cnblogs.com/ywyin/p/9026386.html