LYang194 2021-08-17 22:35 采纳率: 50%
浏览 39
已结题

继承了父类,为何连父类外的代码都要一起运行呢

我学习的时候,有2个模块,模块electric_car中继承了模块car中的Car类。为何我在运行模块car时连模块electric_car中Car类之外的代码都一起运行了呢,有解释吗。

运行模块electric_car的理想结果:
这辆车的电瓶容量是75Ah。

但是,运行模块electric_car的实际结果:
这辆车已跑了100公里。
这辆车的电瓶容量是75Ah。


模块car:
class Car:
"汽车"

def __init__(self, make, model, year):
    "汽车的初始属性包含:制造商、型号、生产年份"
    self.make = make
    self.model = model
    self.year = year
    self.odometer_reading = 0

def get_descriptive_name(self):
    "打印汽车信息"
    long_name = f"{self.year} {self.make} {self.model}"
    return long_name.title()

def read_odometer(self):
    "打印汽车里程"
    print (f"这辆车已跑了{self.odometer_reading}公里。")

def update_odometer(self, meter):
    "更新汽车里程,并禁止将里程回调"
    if meter >= self.odometer_reading:
        self.odometer_reading = meter
    else:
        print ("禁止回调汽车里程数。")

def increment_odometer(self, miles):
    "将里程表读数增加指定的量"
    self.odometer_reading += miles

my_new_car = Car('audi', 'a4', 2019)
my_new_car.increment_odometer(100)
my_new_car.read_odometer()


模块electric_car:
from car import Car

class Battery:
"电动汽车电瓶"

def __init__(self, battery_size=75):
    "
    电动车电瓶属性:
    电瓶规格默认75Ah(安时)
    "
    self.battery_size = battery_size

def describe_battery(self):
    "打印一条描述电瓶容量的消息"
    print (f"这辆车的电瓶容量是{self.battery_size}Ah。")

class ElectricCar(Car):
"电动汽车类,继承汽车类"

def __init__(self, make, model, year):
    "
    初始化父类的属性;
    添加子类特有的属性:电瓶
    "
    super().__init__(make, model, year)
    self.battery = Battery()

def describe_battery(self):
    "打印电动车电瓶容量"
    print (f"有一个 {self.battery_size}-kwh的电瓶")

my_tesla = ElectricCar('tesla', 'model s', 2019)
my_tesla.battery.describe_battery()

  • 写回答

3条回答 默认 最新

  • 想换辆新车 2021-08-17 22:46
    关注

    Import模块时,该模块的顶级语句都会执行,变量函数和类也会生成,只有if name = "main":下的语句除外

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月2日
  • 已采纳回答 8月25日
  • 创建了问题 8月17日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题