• python面向对象


    主要内容:

    1.面向对像

    类:

      具有相同属性和技能的一类事物.

    对象:

      类的具体表现.

    class 关键字

    class 类名:  (类名应该首字母大写)

    对像:

    obj1 = 类名()  这句话程序主要做了三件事.

    1.在内存中创造了一个空的对象空间.

    2.自动执行__init__(self),并且将空的对象空间传给self

    3.在__init__方法中,给空的对象空间封装一些属性,然后再将完善好的空间,返回给这个类名,这个对象.

       1)对象查看自已空间的所有属性:

      obj._dict

     2)对像操作自已的属性,万能的点.

           obj.属性名(增删改查)

     3)对象可以查询类中的静态字段

      obj.静态字段.

      4)对象执行类中的方法.

      obj.方法名()

    类名称空间和对象名称空间

    对象的查询顺序:先从对象空间去找,对象的空间没有此变量或者方法,通过对象中的类对象指针去类中寻找.

    类的查询顺序: 直接从类本身找.不能从对象中查找.

    无论创建多少对象,都是开辟独立的空间,各个对象之间不能互相查找,干扰.

    计算一个类实例化多少个对象

    示例代码:

    class A:
        count = 0
        def __init__(self):
            A.count += 1
            pass
        def fun(self):
            pass
    ob1 = A()
    ob2 = A()
    ob3 = A()
    ob4 = A()
    print(ob3.count)

    组合: 给一个类的对象,封装一个属性,这个属性是另一个类的对象.

    示例:

    class People:
        def __init__(self,*args):
            self.name = args[0]
            self.ad = args[1]
            self.hp = args[2]
        def attack(self,ob1):
            ob1.hp = ob1.hp - self.ad
            print("%s攻击了%s,%s还剩下%s的血!"%(self.name,ob1.name,ob1.name,ob1.hp))
        def add_weapon(self,wea):
            self.weapon = wea
    
    gl = People("盖伦",10,100)
    js = People("剑圣",20,80)
    gl.attack(js)
    js.attack(gl)

     

  • 相关阅读:
    编译 Linux 内核,qemu + gdb 动态调试
    编译带 debug info 的 glibc 源码级调试
    ropemporium-ret2csu
    ropemporium-pivot
    ropemporium-badchars
    ropemporium-split
    了解CSRF和XSS
    流氓DHCP服务器内网攻击测试
    windows安装Sharewaf
    CBWFQ/WFQ的对比
  • 原文地址:https://www.cnblogs.com/ahliucong/p/9239170.html
Copyright © 2020-2023  润新知