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 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应