云计算百科
云计算领域专业知识百科平台

Ptyhon中在子类中添加方法,覆盖父类中的方法及如何导入其他文件中的类

前面我们实现了了继承父类和在子类中添加新的属性。子类中还可以添加新的方法,但在子类中创建的方法无法在父类中使用,而父类中创建的方法可以在子类中使用

一,在子类中添加方法

如图示例代码

在子类 New_Microwave 中,第6行代码新增了一个名为 set_light() 的方法。该方法用于模拟调节灯光强度:当需要增强亮度时,可通过向形参 add_light 传递相应数据,并执行方法内的代码来实现。

由于 set_light() 是在子类 New_Microwave 中定义的,因此通过 New_Microwave 创建的对象可以调用该方法,而通过父类 Microwave 创建的对象则无法调用。

示例代码

第1-2行代码通过子类 New_Microwave 创建了对象 a,并传递了参数 'zhangsan' 和 100。由于该子类中定义了 set_light() 方法,因此对象 a 可以正常调用此方法,实现调节微波炉灯光强度的功能。

而在父类 Microwave 中并未定义 set_light() 方法,也未从其他来源继承该方法,因此当程序执行到第4行代码(尝试通过父类对象调用 set_light())时,将会因找不到方法而抛出异常报错。

二,覆盖父类中的方法

而当我们需要对父类的方法进行修改时,可以通过子类重新编写父类的方法。在执行子类中的方法时会自动覆盖父类中的相应方法

示例代码

在子类 New_Microwave 中,第6行代码重写了名为 print_info 的方法,在其代码块中新增了对当前灯光强度属性的处理。

由于子类重写了该方法,因此:

通过 New_Microwave 创建的对象将调用子类中重写后的 print_info() 代码。
通过父类 Microwave 创建的对象仍将调用父类中原有的 print_info() 代码。

随后我们创建了变量a调用New_Microwave使用的就是子类重写后的代码

三,导入其他文件中的类

当我们在开发项目时,往往会发现定义类的代码和使用类的代码不在同一个文件中。下面我们来实现在一个文件中使用另一个文件中的类。

1.导入类

当需要在main.py文件使用2.py文件中的类Microwave时,其使用方法与导入其他模块中的函数的方法基本一致,且必须保证两个文件处在同一个文件夹内,否则将无法导入文件中的内容。

下面以这两个文件介绍四种导入其他文件中类的代码形式。

第一种,导入文件

由于2.py代码文件中使用了import导入了main.py文件,因此后面使用时,需要在Microwave前面加上引导符“main”,

第二种,导入文件指定类,在2.py的代码如下:

第三种,导入文件的全部类,在2.py文件中的代码如下:

第四种,给导入的类型设置别名,在2.py文件的代码如下

四,在类中使用另一个类的方法

如果在定义一个类时需要使用另一个类的方法,可参考创建类对象和使用方法的步骤,分别为mian.py,  f.py ,g.py

该代码定义了类Bluetooth,用于模拟连接手机蓝牙。其中第3行代码中的__init__()初始化方法需要接收一个参数yorn。第5行代码创建了con()方法,用于模拟判断当前是否需要连接手机蓝牙。

该代码定义了类Microwave,其中第2行代码使用import  main导入main.py代码文件。第14行代码的
Microwave中定义con_bluetooth方法,用于模拟手机通过蓝牙控制微波炉。第16码执行了蓝牙对象中的con()操作,从而实现了模拟手机蓝牙和微波炉的连接。

执行结果

赞(0)
未经允许不得转载:网硕互联帮助中心 » Ptyhon中在子类中添加方法,覆盖父类中的方法及如何导入其他文件中的类
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!