zoukankan      html  css  js  c++  java
  • day19 面象对象

     面向对象

    一、类的实例化:调用类产生对象的过程称为类的实例化,实例化的结果是一个对象,或称为一个实例

    class People:

      def __init__(self,name,age,sex):

        self.name=name

        self.age=age

        self.sex=sex

      def run(self):

        print('%s is running'%self.name)

    实例化做了三件事

    1、先产生一个空对象

    2、自动触发类内部__init__函数的执行

    3、将空对象,以及调用类括号内传入的参数,一同传给__init__,为对象定制独有的属性

    obj=People('egon',18,'male')=====>People.__init__(obj,'egon',18,'male')

    会产生对象的名称空间,如何查看

    print(obj._dict__)

    二、对象的操作

    1、查 print(obj.name)

    2、增obj.education='aa'

    3、删del obj.name

    4、改obj.age=19

    三、对象属性的查找顺序:先找对象自己的名称空间===>类的名称空间

    class People:

      x=1

      def __init__(self,name,age,sex):

        self.name=name

        self.age=age

        self.sex=sex

      def run(self):

        print('%s is running'%self.name)

    obj=People('egon',18,'male')

    obj1=People('egon1',18,'male')

    obj2=People('egon2',18,'male')

    类的数据性性:是给对象用的,而且直接共享给所有对象用的,内存地址都一样

    print(People,x)

    People.x=11111

    2、类的函数性性:也是给对象用,但是绑定给对象用的,绑定到不同的对象就是不同的

    绑定方法,内存地址都不一样,但其实只是同一个功能

    四:绑定方法的特殊之处:

    1、绑定给谁就应该由谁来调用,

    2、谁来调用就会把谁当做第一个参数传入

    class People:

      x=1

      def__init__(self,name,age,sex):

        self.name=name

        self.age=age

        self.sex=sex

       def run(self):

        print('%s is running'%self.name)

       def f1(self):

        print('from f1')

       def f2(self):

        pass

    obj=People('egon',18,'male')

    五:一切皆对象:在python3中统一了类与类型的概念,类即类型

    l=lise([1,2,3])

    print(type(l))

    <class 'list'>


      人狗大战

    class People:

      def __init__(self,name,act,life_value=100):

        self.name=name

        self.act=act

        self.life_value=life_value

      def bite(self,enemy):

        enemy.life_value-=self.act

        print('''

         人[%S]咬了一口狗[%s]

         狗掉血[%s]

          狗还剩血量[%s]'''%(self,name,enemy.name,self.act,enemy.life_value) )

    class Dog:

      def__init__(self,name,dog_type,act,life_value):

        self.name=name

        self.dog_type=dog_type

        self.act=act

        self.life_value=life_value

      def bite(self,enemy):

        enemy.life_value-=self.act

        print('''

          狗[%s]咬了一口人)

           人掉血[%s]

           人还剩血量[%s]'''%(self.name,enemy.name,self.act,enemy.life_value))

    p1=People('lige',60)

    d1=Dog('bb','cc',200,200)

    p1.bite(d1)

    d1.bite(p1)

  • 相关阅读:
    PowerMock详解
    java -agent与Javassist
    gradle_____最后到齐的构建工具
    JVM--参数调优
    提高速度 history 的利用
    shell-异步执行
    redis常用命令与使用分析
    chrome mac 快捷键
    idea的快捷键和操作
    mysql事务以及隔离级别
  • 原文地址:https://www.cnblogs.com/lg04551/p/8796029.html
Copyright © 2011-2022 走看看