类与对象以及构造方法的调用

  • 语法:class 类名:               ps:这里自己定义了一个类
  • 类是具有相同的属性和功能的对象的抽象的集合 eg:“人类”,“动物类”
  • 因为类是一个泛泛而谈的大类,是抽象的不具体的,所以我们引入了对象的概念

对象

  • 语法:对象名=类名()        ps:这里创建了一个类的实例,也叫对象实例化
  • 对象是类的实例,比如程文君和徐子昂都是人,那我们就是人类的对象,我们是具体的人
  • 若在类中定义了构造方法,在创建对象的时候默认使用构造方法即给类名后面的()中传入定义构造方法中的参数(构造方法我会后面讲滴,不着急啊~)

属性

  • 语法:对象名.属性名              ps“.”可以理解为“的”
  • 属性是对象具有的,比如我们的年龄,身高

Self

  • self是对象本身的代表,self指的就是我们创建的类中的实例对象本身 
  • 比如在动物类中,我们创建了一个小猫对象,那么self就指的是小猫

方法

  • 语法:def 方法名(self,参数):
  •                   功能
  •                   功能
  • 判断一个方法体的起始和结束只要看它的缩进(也叫空格对齐)
    def __init__(self,name):
        self.name=name
        print("动物名称实例化")
    def eat(self):
        print(self.name+"要吃东西啦!")
    def drink(self):
        print(self.name+"要喝水啦")
  • 在上面的代码中 有三个方法,以第一个_init_方法为例子,它的功能有两行,每一行功能缩进两个空格,代表这行属于这个方法内部 
  • 如果想退出给该方法添加功能,那么就只需要在下一行不进行缩进,与def的d对齐,就开始了新的一行代码,不再属于该方法。
  • 参数是需要参加进入该方法的数据,在调用方法时自己定义,可以有多个
  • def calculate_bmi(weight,height):
        bmi=weight/(height*height)
        return bmi

    比如这里有一个计算bmi的方法,这里传入的两个参数----身高和体重------参与bmi运算

方法的调用

  • 语法:对象名.方法名(参数) ps:若没有参数就不需要写,直接()就行
  • 方法的调用一定是要具体的,我们不能直接说“动物喝水”,“动物吃饭”,这太抽象了。而是要具体到“小猫喝水”,“小猫吃饭”
  • //先实例化一个小猫对象
    cat=Animal("miaomiao")
    //小猫调用了吃饭,喝水方法
    cat.eat()
    cat.drink()

构造方法(可以理解为初始化)

  • 语法:def _init_(self,参数)
  •                 self.属性=参数
  • self的理解

  • 在一个类中的所有方法第一个参数都要写self,因为需要调用自己的属性
  • self其实就是我们创建的类的实例对象,在动物类中我们会创建不止小猫一个对象,还有小狗等等,所以我们统一用self来代指我们创建的小动物

  • 构造方法在我们实例化对象的时候就默认直接调用了,可以这么去理解,_init_其实是“initial”的简写,我们希望每个小动物一出生就有姓名,那就去写一个设置名字参数的构造方法
  • 直接来看下面的代码
  • class Animal://定义了动物类
    
        def __init__(self,name)://定义构造方法,设置参数name
            self.name=name      // 将传入的参数name赋值给对象的属性(名字)
            print("动物名称实例化")//这是方法中的一个打印功能
    
    cat=Animal("miaomiao")      //实例化了动物的对象——小猫,因为构造方法是在初始化的时候直接调用的,所以在我们要生成小猫的时候,就要给小猫起名字了

    在Python中创建类的对象并不一定需要定义构造方法(__init__ 方法)

  • 如果我们不需要给小猫起名字,就不用写_init_构造方法
  • cat=Animal()

    这样就已经创建了一个小猫,只不过写了_init_方法可以在创建小猫的时候直接给名字赋值嘞

案例分析

//创建一个动物类
class Animal:
//定义_init_构造方法,用来初始化动物对象的姓名
    def __init__(self,name):
        self.name=name
        print("动物名称实例化")
//定义了一个吃的方法
    def eat(self):
        print(self.name+"要吃东西啦!")
//定义了一个喝的方法
    def drink(self):
        print(self.name+"要喝水啦")
//实例化动物对象——小猫,构造方法在实例化时默认直接调用,(“  ”)里面的内容就是传入的参数,用来给小猫的name赋值
cat=Animal("miaomiao")
//打印小猫的属性——名字,名字已经在实例化的时候被构造方法赋值过miaomiao了
print(cat.name)
//调用eat方法
cat.eat()
//调用drink方法
cat.drink()

我们来看看运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值