
if unit == 'F': self.number = (number - 32) * 5/9 UnboundLocalError: local variable 'number' 在賦值前被參考
uj5u.com熱心網友回復:
number 變數需要在 to() 函式的開頭首先宣告。一個簡單的:“number;”在你的 to() 函式的第一行就可以解決這個問題。
uj5u.com熱心網友回復:
class Temp:
"""A class to help work with lengths in various units"""
number = 0
def __init__(self, number, unit='C'):
# Convert and store Temp as self.temp
if unit == 'C': self.temp = number
elif unit == 'F': self.temp = (number - 32) * 5/9
elif unit == 'K': self.temp = number 273.15
# Unit not recognised
else: raise Exception("Unit not recognised")
def to(self, unit, dp=None):
# Convert self.temp to unit
if unit == 'C': number = (5/9 * self.temp ) 32
elif unit == 'C': number = self.temp - 273.15
else: raise Exception("Unit not recognised")
if dp: number = round(number, dp)
return f"{number}{unit}"
def __str__(self):
return f"Temp: {self.temp}C"
def __add__(self, other):
return Length(self.metres other.metres)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/450477.html
上一篇:函式執行后是否存盤類引數?
