本质上,从给定的代码开始,错误不断重复,涉及元组。我从这里开始要完成此问题,并需要一些帮助。
class Temperature:
def Temperature(val, unit):
k = "K"
if unit == "F":
val = (val - 32)*(5/9) + 273.15
val2 = round(val, 2) , "K"
return val2
if unit == "C":
val = val + 273.15
val2 = round(val, 2) , "K"
return val2
if unit == "K":
val2 = round(val, 2) , "K"
return val2
def celcius(val, unit):
if unit == "F":
return (val - 32)*(5/9), "C"
if unit == "K":
return val - 273.15, "C"
def farenheit(val, unit):
if val > 0 and unit == "C":
return (val * (9/5)) + 32, "F"
if val > 0 and unit == "K":
return (val - 273.15) * (9/5) + 32, "F"
def kelvin(val, unit):
if val > 0 and unit == "F":
return (val - 32)*(5/9) + 273.15
if val > 0 and unit == "C":
return val + 273.15
t1 = Temperature(31, "F")
print(t1.celsius())
错误信息:
追踪(最近通话):文件“ C:\ Users \ DBurke \ Documents \ practice.py”,第1行,在等级温度:温度中的文件“ C:\ Users \ DBurke \ Documents \ practice.py”,第63行打印(t1.celsius())AttributeError:“ tuple”对象没有属性“ celsius”
这里有很多问题。首先,您未在任何方法中包含self关键字。
使用self关键字获取构造函数中的输入,并通过self以其他方法访问参数。这是Python中的标准OOP方法。
第二,构造函数定义不正确,应该是:
class Temperature:
def __init__(self,val, unit):
似乎您正在将Java语法与Python混淆。