Python中--类的使用和基础概念

杨博雄教授在编写的书中写道:

现实世界中存在各种不同形态的事物,事物间又存在着各种各样的联系。在程序中用对象来映射现实中的事物,用对象之间的关系来描述事物之间的联系,这种思想就是面对对象。

《Python编程从入门到实践》中写道:

面向对象编程时最有效的软件编写方法之一。在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对象都有的通用行为。基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。

根据类来创建对象被称为实例化。

1、根据约定,python中首字母大写的名称指的是类,小写为类创建的实例。

类名:应使用驼峰命名法,单词首字母都大写,并且不使用下划线。

实例名和模块名:都采用小写格式,并在单词之间加上下划线。

2、方法_init_( )

类中的函数都称为方法,__init( )__则是一个特殊的方法,每次用类创建实例时,python都会自动执行它。创建类时的参数也会传导给它。

如:my_dog = Dog(‘while’, 6)

Python中--类的使用和基础概念_第1张图片

当在‘__init__’方法中为一个变量赋了一个初始值,该初始值将称为该类的默认值。当你在创建实例时显式的为这个变量提供了一个值,这个值将会覆盖掉‘__init__’中设置的默认值。

3、方法定义中的形参self

方法定义中都必须包含形参self。每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

只需要传递name和age

4、变量前缀self和类中定义的方法

以self为前缀的变量(属性)可供类中的所有方法使用(self.name和self.age),还可通过类的任何实例访问这些变量。

创建的实例都可以访问这些方法。(即都掌握这些技能)

5、给属性指定默认值

类中的每个属性必须有初始值,若在方法__init__( )内已经指定了属性的初始值,则无需在创建实例时再给该属性提供初始值的形参。

Python中--类的使用和基础概念_第2张图片

6、继承

一个类继承另一个类时,将自动获得另一个类的所有属性和方法。原有类称为父类,新类为子类。子类继承了父类的所有属性和方法,同时还可以定义自己的属性和方法。

7、父类位置

创建子类时,父类必须包含在当前文件中,且在子类前面。Class ElectircCar(Car)

8、super( )函数

特殊函数,将父类和子类关联起来。让python调用EletircCar的父类的方法__init__(),使子类EletricCar包含父类的所有属性。父类也被称为超类(superclass)

Python中--类的使用和基础概念_第3张图片

初始化时也要对这三个属性赋初值

9、给子类定义属性和方法

一个类继承另一个类后,可添加区分子类和父类所需的属性和方法

Python中--类的使用和基础概念_第4张图片

10、实例用作属性

可以将实例用作类的一个属性,以简化代码,更具逻辑性。

将实例作为类的属性后,每当方法__init( )__被调用时,都将创建一个新的Battery实例,并将实例存储在属性self.battery中,每个ElecticCar实例都包含一个自动创建的Battery实例。

Python中--类的使用和基础概念_第5张图片

要描述类Battery( )中的方法describe_battery( )时,要用到属性battery

这行代码首先在实例my_tesla中查找属性battery,并对存储在属性中的Battery实例调用方法describe_battery( )。

输出为:

This car has a 70-kWh battery.

导入类:

11、导入单个类

在car.py文件中创建类car

Python中--类的使用和基础概念_第6张图片

my_car.py中导入:

12、导入多个类

用逗号隔开各个类

13、导入整个模块

需要使用句点表示法访问需要的类。该方法创建类实例时代码都包含模块名,因此不会与当前文件使用的任何名称发生冲突。

你可能感兴趣的:(开发语言,python)