Python,重写继承的方法';s功能

Python,重写继承的方法';s功能,python,inheritance,super,Python,Inheritance,Super,我有以下课程 class PlotOnMap: 定义初始值(self,lat_lon_a,lat_lon_b,最优,f_map=None): self.lat_lon_a=lat_lon_a self.lat_lon_b=lat_lon_b 自我优化=最优 self.f_map=f_map def创建_映射(自): """ 此函数用于创建一张以三个给定点的位置为中心的带有页码的地图。 """ self.f_map=folium.map([midlat,midlon],zoom_start=12)

我有以下课程

class PlotOnMap:
定义初始值(self,lat_lon_a,lat_lon_b,最优,f_map=None):
self.lat_lon_a=lat_lon_a
self.lat_lon_b=lat_lon_b
自我优化=最优
self.f_map=f_map
def创建_映射(自):
"""
此函数用于创建一张以三个给定点的位置为中心的带有页码的地图。
"""
self.f_map=folium.map([midlat,midlon],zoom_start=12)
def plot_gdt_和_三角测量(自):
"""
此函数使用标记绘制用户给定的位置,并创建三角测量的热图。
"""
#绘制gdt的位置。
叶状标记(
位置=gdt1,
弹出窗口='GDT 1',
icon=folium.icon()
).add_to(self.f_映射)
叶状标记(
位置=gdt2,
弹出窗口='GDT 2',
icon=folium.icon()
).add_to(self.f_映射)
叶状标记(
位置=无人机,
弹出“目标区域”,
icon=folium.icon()
).add_to(self.f_映射)
#绘制三角测量(规则和最佳)区域
插件。热图(数据=self.lat_lon_a,
).add_to(self.f_映射)
插件。热图(数据=self.lat_lon_b,
).add_to(self.f_映射)
plugins.HeatMap(data=self.optimal,
梯度={0.65:'石灰'}
).add_to(self.f_映射)
我继承了它:

类Plot2ndPosition(PlotOnMap):
定义初始值(自、横向长度a、横向长度b、最佳):
self.plot_on_map=super()
def plot_图(自):
返回self.plot\u on\u map.create\u map()
def绘图单元位置(自身):
返回self.plot_on_map.plot_gdt_和_三角测量()
唯一的区别是,在Plot2ndPosition类中,在第二种方法中,我不想绘制gdt2和热图,我只想绘制gdt1和uav(第一个和最后一个标记)

我考虑将每个变量都赋给一个变量,并在继承方法时以某种方式忽略它

def plot_gdt_和_三角测量(self):
"""
此函数使用标记绘制用户给定的位置,并创建三角测量的热图。
"""
#绘制gdt的位置。
一=叶标记(
位置=gdt1,
弹出窗口='GDT 1',
icon=folium.icon()
)
一.添加到(self.f_映射)
二=叶标记(
位置=gdt2,
弹出窗口='GDT 2',
icon=folium.icon()
)
二、添加到(self.f_映射)
三=叶标记(
位置=无人机,
弹出“目标区域”,
icon=folium.icon()
)
三.添加到(self.f_映射)
#绘制三角测量(规则和最佳)区域
trian_plot1=插件。热图(数据=self.lat_lon_a,
).add_to(self.f_映射)
trian_plot2=插件。热图(数据=self.lat_lon_b,
).add_to(self.f_映射)
trian_plot3=插件。热图(数据=自优化,
梯度={0.65:'石灰'}
).add_to(self.f_映射)

一个选项是在
Plot2ndPosition

class Plot2ndPosition(PlotOnMap):

    def __init__(self, lat_lon_a, lat_lon_b, optimal):
        super().__init__(lat_lon_a, lat_lon_b, optimal)

    def plot_gdt_and_triangulation(self):
        folium.Marker(
            location=gdt1,
            popup='GDT 1',
            icon=folium.Icon()
        ).add_to(self.f_map)
        folium.Marker(
            location=uav,
            popup='Target Area.',
            icon=folium.Icon()
        ).add_to(self.f_map)
您还可以删除
plot\u map()
,只需调用
create\u map()
。您可以使用
Plot2ndPosition
实例调用它。如果您有更多的逻辑,您不需要将基类保存为成员,它的所有方法都可以从
self

def plot_map(self):
    return self.create_map()