zoukankan      html  css  js  c++  java
  • 初识面向对象

    面向对象

    语法

    类:具有相同方法和属性的一类事物         例如 桌子 电脑 猫

    对象:具有具体的属性值的实际存在的例子      例如 周杰伦 江疏影

    用class来描述一个类

    class 类名:      创建一个类   类名通常为以大写字母开头的单词

    class Dog:

      变量1 = 100

      变量2 = 'ab'

      变量3 = [a,v,d,s]         变量可以是任何数据类型

    print(Dog.变量)      常用查看类中的变量的方法

    print(Dog.__dict__['变量'])      方法二

    实例化

    对象也是实例,创建一个对象就是创建一个实例,这个过程叫做实例化

    实例化的过程

    在内存中开辟了一块空间

    创建了一个 self 变量来指向这块空间  

    调用 init 自动传 self 参数  其他的参数都是按照顺序传进来的

    执行init  将 self 自动返回给调用者

    类名加括号的方式可以创建一个对象

    class Dog:
        def __init__(self,name,hp,ad,sex):
            print('执行')
            self.dict['name'] = name    不常用 
            self.blood = hp
            self.ad = ad
            self.sex = sex
                    self 其实上是由python的语法开辟出了一个属于具体的对象的空间
    qu = Dog('qu',20,10,'man')            传参的过程中 qu = self
    (对象/实例)
    print(qu.name)          引用实例变量/引用对象属性
    leng = Dog('leng',10,5,'sb')
    (对象/实例)
    print(leng.ad)

    执行 init 向 self 这类空间管理的字典中添加一些 key value,  self 会自动的被返回

    一切皆对象

    数据类型也是类

    对象就是具体的内容

    class Dog:

      a = 100          a就是静态变量  这个类中的变量  是所有对象共享的值  所有静态变量的值都尽量用类名去操作

      def __init__(pass)  初始化方法

      (对象资源)

    示例函数

    class Dog:
        def __init__(self,name,hp,ad,sex):
            self.name = name
            self.hp = hp
            self.ad = ad
            self.sex = sex    
        def bite(self,person)         
            person.hp -= self.ad
            print('%s攻击了%s,造成了%s点伤害'%(self.name,person.name,self.ad))
    class Person:
        def __init__(self,name,hp,ad,sex):
            self.name = name
            self.hp = hp
            self.ad = ad
            self.sex = sex
        def fight(self,dog)
            dog.hp -= self.ad
            print('%s攻击了%s,造成了%s点伤害'%(self.name,dog.name,self.ad))
    hei = Dog('小黑',20,10,'?')
    pdd = Person('PDD',100,20,'man')
    hei.bite(pdd)
    print(pdd.hp)
    pdd.fight(hei)
    print(hei.hp)

    里面的def fight(self,dog) 属于动态变量/方法  是只属于Person的方法

    类名     可以调用所有定义在类中的名字

    对象名 可以调用所有定义在对象中的属性

    变量 函数名

    在 init 函数和 self 相关的调用函数 且调用函数的时候  会把当前的对象当作第一个参数传递给 self

    向对象的内存空间添加

    可以通过 init 在类的内部完成  也可以通过对象名在类的外部完成

    也可以通过在类的外部通过对象名来修改属性的值

    删除

    del pdd.name        删除  pdd.name  这条属性

  • 相关阅读:
    对于Volatile的认识
    TextView图文混排
    android自定义控件
    我最喜欢的SQL分页查询方法
    nopCommerce开发者指南(十):开发者怎样为nopCommerce 项目贡献代码?
    nopCommerce开发者指南(九):设置 API
    nopCommerce开发者指南(八):暴露和处理事件
    nopCommerce开发者指南(七):计划任务
    nopCommerce开发者指南(六):数据验证
    nopCommerce开发者指南(五):怎样注册新路由?
  • 原文地址:https://www.cnblogs.com/biulo/p/10597388.html
Copyright © 2011-2022 走看看