美文网首页
python面向对象

python面向对象

作者: 宁静消失何如 | 来源:发表于2017-07-09 20:11 被阅读29次

    面向对象的一般概念:

    #
    

    Class 类 一个抽象
    Object 对象 一个实例

    封装:
    在类中对数据的赋值 内部调用对外部是透明的
    继承:
    一个类可以派生多个类 子类继承父类
    多态:
    一个接口多种实现,对不同的类发出同一个命令,会得到不同的行为。

    __author__ = 'lee'
    class Role:
        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("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 =Role('Alex','police','AK47').got_shot() # 生成一个角色 实例化 想当午造了一个对象
    Role('Alex','police','AK47').buy_gun("B22")
    
    r2 = Role('Jack','terrorist','B22')  # 生成一个角色
    
    #r1.buy_gun("AK47")
    

    类里可以有变量存在,叫类变量。
    类变量的用途:大家公用的属性

    class Person:
        cn = "中国"
        def __init__(self,name,age,addr):
            self.name = name
            self.cn = 'cn'
    p1 = Person('name','age','addr')
    

    析构函数: 在实例释放、销毁的时候实施的,通常用于做一些收尾工作,如关闭一些数据库连接,打开的临时文件。
    Question:
    Python有内存回收机制为何还需要析构函数?
    自动回收是回收没有变量名的,如果有变量名则不回收

    私有属性
    类似这样 在属性前加上__,只有类本身可以被调用

    self.__life_value = life_value
    

    私有方法
    类似这样 在方法前加上__,只有类本身可以被调用

     def __got_shot(self):
            print("ah...,I got shot...")
    

    相关文章

      网友评论

          本文标题:python面向对象

          本文链接:https://www.haomeiwen.com/subject/ttmjhxtx.html