UnboundLocalError: local variable 'range' referenced before assignment
Posted 乘风破浪会有时,直挂云帆济沧海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnboundLocalError: local variable 'range' referenced before assignment相关的知识,希望对你有一定的参考价值。
1. 报错信息
UnboundLocalError: local variable \'range\' referenced before assignment
2. 代码
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 = str(self.year) + \' \' + self.make + \' \' + self.model return long_name.title() def read_odometer(self): """打印一条指出汽车里程的消息""" print("This car has " + str(self.odometer_reading) + " miles on it.") def update_odometer(self, mileage): """将里程表读数设置为指定值""" self.odometer_reading = mileage """ 将里程表读数设置为指定的值, 禁止将里程表读数往回调 """ if mileage >= self.odometer_reading: self.odometer_reading = mileage else: print("You can\'t roll back an odometer!") def increment_odometer(self, miles): """将里程表读数增加指定的量""" self.odometer_reading += miles # my_used_car = Car(\'subaru\', \'outback\', 2013) # print(my_used_car.get_descriptive_name()) # # my_used_car.update_odometer(23500) # my_used_car.read_odometer() # # my_used_car.increment_odometer(100) # my_used_car.read_odometer() # my_new_car = Car(\'audi\', \'a4\', 2016) # print(my_new_car.get_descriptive_name()) # my_new_car.update_odometer(23) # # my_new_car.odometer_reading = 23 # my_new_car.read_odometer() class Battery(): """一次模拟电动汽车的属性""" def __init__(self, battery_size = 60): """初始化电瓶属性""" self.battery_size = battery_size def describle_battery(self): """打印一天描述电瓶容量的消息""" print("This car has a " + str(self.battery_size) + " -kWh battery.") def get_range(self): """打印一条描述电瓶续航里程的消息""" # range = 200 if self.battery_size == 70: range = 240 elif self.battery_size == 85: range = 270 message = "This car can go approximately " + str(range) message += " miles on a full charge." print(message) class ElectricCar(Car): """模拟电动汽车的独特之处""" def __init__(self, make, model, year): """初始化父类的属性,在初始化电动汽车特有属性""" super().__init__(make, model, year) self.battery = Battery()
from car import ElectricCar my_tesla = ElectricCar(\'tesla\', \'model S\', 2016) print(my_tesla.get_descriptive_name()) my_tesla.battery.describle_battery() my_tesla.battery.get_range( )
3. 解决方法
在get_range()方法中先定义一个range变量,然后进行逻辑运算
def get_range(self): """打印一条描述电瓶续航里程的消息""" range = 200 # 先定义变量,后进行运算 if self.battery_size == 70: range = 240 elif self.battery_size == 85: range = 270 message = "This car can go approximately " + str(range) message += " miles on a full charge." print(message)
4. 执行结果
D:\\python编程:从入门到实践\\venv\\Scripts\\python.exe D:/python编程:从入门到实践/my_electric_car.py 2016 Tesla Model S This car has a 60 -kWh battery. This car can go approximately 200 miles on a full charge. Process finished with exit code 0
以上是关于UnboundLocalError: local variable 'range' referenced before assignment的主要内容,如果未能解决你的问题,请参考以下文章
UnboundLocalError: local variable 'range' referenced before assignment
Python报错:UnboundLocalError: local variable ‘xxx‘ referenced before assignment
Python报错:UnboundLocalError: local variable ‘xxx‘ referenced before assignment
python报错:UnboundLocalError: local variable ‘np‘ referenced before assignment
python 错误--UnboundLocalError: local variable '**' referenced before assignment
全局变量报错:UnboundLocalError: local variable 'xxxxx' referenced before assignment