qq757153384 发表于 2020-11-24 19:36:00

只导入模块的一个类,而这个类中调用没导入的类为什么不会出问题

shishi.py
from shishi111 import Ele_car

my_tesla = Ele_car('tesla','model s',2016)
my_tesla.show()
my_tesla.battery.show_battery()

shishi111.py
class Car():
    '''一次模拟汽车的简单测试'''
    def __init__(self,make,type,year):
      self.make = make
      self.type = type
      self.year = year
      self.mile = 0
    def show(self):
      print(str(self.year),(self.make).title(),self.type)

    def change_mile(self,new_mile):
      self.mile = new_mile
      print('now the mile is '+ str(self.mile))

    def add_sum(self,added):
      self.mile += added


class Battery():
    def __init__(self):
      self.battery_size = 70
    def show_battery(self):
      print('the car has a '+str(self.battery_size)+'-kwh battery!')


class Ele_car(Car):
    def __init__(self,make,type,year):
      '''初始化父类信息'''
      super().__init__(make,type,year)
      self.battery = Battery()

永恒的蓝色梦想 发表于 2020-11-24 19:37:48

报的什么错

qq757153384 发表于 2020-11-24 20:19:11

永恒的蓝色梦想 发表于 2020-11-24 19:37
报的什么错

Battery没导入,为什么Ele_car可以使用self.battery = Battery()

suchocolate 发表于 2020-11-24 20:22:42

super().__init__()就是干这个的,搜索所有基类和方法。

hrp 发表于 2020-11-24 20:24:40

qq757153384 发表于 2020-11-24 20:19
Battery没导入,为什么Ele_car可以使用self.battery = Battery()

因为Battery就在Ele_car所在的模块,对于Ele_car来说,Battery就是已定义的。

永恒的蓝色梦想 发表于 2020-11-25 19:38:19

qq757153384 发表于 2020-11-24 20:19
Battery没导入,为什么Ele_car可以使用self.battery = Battery()

他俩不是在一个文件里么?为什么要导入

叼辣条闯世界 发表于 2020-11-25 20:23:14

???
页: [1]
查看完整版本: 只导入模块的一个类,而这个类中调用没导入的类为什么不会出问题