变量引用的错误:UnboundLocalError:localvariablerangereferencedbeforeassignment

标签:
python |
分类: Python |
抄了《Python编程:从入门到实践》这本书上9.4.2的例子运行了一下,竟然报错:UnboundLocalError: local
variable 'range' referenced before assignment
"""一次模拟电动汽车电瓶的简单尝试"""
def __init__(self,
battery_size=60):
"""初始化电瓶的属性"""
self.battery_size = battery_size
def
describe_battery(self):
"""打印一条描述电瓶容量的消息"""
print("This car has a " + str(self.battery_size)
+ "-kWh battery.")
def
get_range(self):
"""打印一条描述电瓶续航里程的消息"""
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 Battery():
在网上找到两种解决办法:
第一种是在def
域内,if条件外声明变量range
class Battery(): """一次模拟电动汽车电瓶的简单尝试""" def __init__(self,
battery_size=60): """初始化电瓶的属性""" self.battery_size = battery_size
def describe_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)
还有一种是用global关键字引用全局变量,具体我贴在参考资料的第二个链接了。