类的创建和用法

类定义了对象有何属性和方法,而对象拥有的具体属性不尽相同。

一.定义对象的属性

①创建类用关键字clsaa实现

②ClassName用于指定类名,和定义普通变量时的下划线命名法不同,用的是“驼峰式命名法”,特点是用首字母大写来分隔单词(如果类中包含两个单词,第一、二个单词的首字母都要大写)

③类有一个特殊的方法是构造函数,作用是定义实例对象的属性,必须命名为__init__()(前后都是两个下划线),括号内可以防止任意参数,第一个参数永远被self占用,表示对象自身,能够把属性绑定在实例对象上。

注意:如果没有self,Python会认为只是在给普通的name变量赋值,不会把这个值看成是对象的属性。

比如创建可爱猫猫的类,并创建对象,通过调用类名、放入参数,调用__init__方法并返回对象,

要获取对象属性,可以通过对象.属性名来获取,返回cat1对象所绑定的name的属性值。

注意:self参数并不需要我们手动传入

为了使__init__的属性赋值更加灵活,可以从参数获取name的值,因此创建对象时需要在括号里创入具体参数。

我们还可以给__init__添加更多属性,在创建对象时传入对应的参数。

打印结果如下:

二.定义对象的方法

方法决定对象能做什么事情,定义方法的方式和我们创建普通的函数差不多,其区别是,第一,要写在class里面并缩进,表示属于该类的方法;第二,和__init__()函数一样,第一个参数被self占用,表示对象自身,方便获取或修改和对象绑定的属性。调用类方法,用对象.方法名(参数)调用,self参数同样不需要手动传入。

三.类继承

1.面向对象的重要特征是继承,意思是创建有层次的类,即父类或子类,子类会继承父类的属性和方法,比如人类和猫猫,他们都是哺乳类动物,有两只眼睛,能呼吸,因此可以创建一个哺乳动物类的类,把共有的属性和方法写在一起。

人类和猫猫都能继承这个类,具体写法是在类名后面的括号中写上父类的名字,即完成子类对父类属性和方法的继承。

2.当创建实例,由于子类没有自己的构造函数,就会调用父类的构造函数;而当子类有自己的构造函数,就会调用自己的构造函数,而不调用父类的。其逻辑是,优先看所属的类有没有要调用的函数,没有再用父类的同名函数。

当子类某些各自属性不同时,比如人没有尾巴,而猫猫有尾巴,我们并不能把该属性写在父类里,而是应该在子类上写__init__方法,如此创建实例,就会优先调用子类的构造函数 。

同时,这会导致实例只有子类创建的的属性(上述提到的呼吸),父类的属性无法继承(上述提到的眼睛,呼吸)。要是子类既能继承父类的属性,又能有自己的构造函数,我们要在子类下面用super()函数,super()会返回当前类的父类,调用父类的构造函数从而完成子类对父类的继承。

内容整理自bilibili博主@林粒粒呀 python27 28 29节

  • 18
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值