python

当前位置:首页 > python面向对象 > 当前文章

python面向对象

类、对象(实例)、实例化、构造方法及实例方法和变量

2020-07-29 80赞 老董笔记
每篇文章努力于解决一个问题!更多精品可移步文章底部。

  公元50000年,动物发生变异开始破坏地球,人和变异生物开始斗争,一场地球保卫战展开。

  这里面有人类和动物类,人类有一些共有特征(年龄、姓名)和行为(吃喝拉撒拳打脚踢等)。首先我们先定义1个人类,可以生产人,生产人时赋予每个人共同特征和行为,同时可以对特征和行为去赋值。

# -*- coding:utf-8 -*-


class Person:
    def __init__(self,my_name,blood_val):
        print(f'创建对象{my_name}...')
        self.name = my_name  # 实例变量
        self.blood = blood_val  # 实例变量

    # 实例方法
    def eat(self,num):
        self.blood  += self.blood * num
        print(f'{self.name}吃了{num}碗面,血值变为{self.blood}')

    # 实例方法
    def kick(self):
        print(f'{self.name}会侧踢')


if __name__ =="__main__":
    p1 = Person('小王',100)
    print(p1.name,p1.blood)
    p1.eat(3) # 传参
    p2 = Person('老王',120)
    p2.kick()
创建对象小王...
小王 100
小王吃了3碗面,血值变为400
创建对象老王...
老王会侧踢

  1)Person就是1个类

  定义类需要类名加1个冒号,类名就是python的一个标识符,符合python语法规范即可(习惯用大写),定义1个类会创建一块内存空间。

  2)p1和p2是对象

  通过Person类创建了2个对象p1和p2,创建对象又叫实列化对象,p1和p2也叫类的实例,创建的每个对象都各自有自己的内存空间。

  3)name和blood是实例变量

  实例变量又叫实列属性,他们在__init__方法中定义,通过对象来调用(对象名.属性名),每个对象都会有这些实例属性。

  3)eat和kick是实例方法

  eat和kick是2个函数,在面向对象的里叫实例方法,通过对象来调用(对象名.方法名),实例方法至少包含一个self参数。

  4)类变量和类方法——后面再介绍。

  5)__init__是构造方法

  类的双下划线方法是一种特殊的方法,__init__是初始化对象用的,在创建对象的时会执行这个方法用来初始化一些数据,所以被称为构造方法,类的构造方法也属于实例方法。

  6)self是什么?

  self是写在类内部的,他代表对象本身,哪个对象在调用就代表哪个对象,要彻底理解self,就得理解创建对象在内存中的过程,下节课专门来介绍self。

  7)可以创建1个空类,啥也没有。

# -*- coding: utf-8 -*-

class Person:
    pass


if __name__ == "__main__":
    p1 = Person()
    p2 = Person()
    print(id(p1))
    print(id(p2))
1759624712880
1759624079056

文章评论

类、对象(实例)、实例化、构造方法及实例方法和变量文章写得不错,值得赞赏