python-3.x - 温度转换,无需调用方法
问题描述
我正在寻找一种解决方案来打印出 t1,转换为开尔文,而不调用以下任何方法。请参阅底部了解如何创建 t1 以及打印输出的解决方案应该是什么。我希望很快能听到一些反馈!
class Temperature:
# --- YOUR CODE STARTS HERE
val = 0
def __init__(self,val, unit):
self.val = val
self.unit = unit
def celcius(self):
if self.unit == "F":
new_temp = (self.val - 32)*(5/9)
self.unit = "F"
new_unit = self.unit
return round(new_temp,2), new_unit
elif self.unit == "K":
new_temp = self.val - 273.15
self.unit = "F"
new_unit = self.unit
return round(new_temp,2), new_unit
else:
return round(self.val,2), self.unit
def fahrenheit(self):
if self.unit == "C":
new_temp = (self.val * (9/5)) + 32
self.unit = "F"
new_unit = self.unit
return round(new_temp,2), new_unit
elif self.unit == "K":
new_temp = (val - 273.15) * (9/5) + 32
self.unit = "F"
new_unit = self.unit
return round(new_temp,2), new_unit
else:
return round(self.val,2), self.unit
def kelvin(self):
if self.unit == "F":
new_temp = (self.val - 32)*(5/9) + 273.15
self.unit = "K"
new_unit = self.unit
return round(new_temp,2), new_unit
elif self.unit == "C":
new_temp = self.val + 273.15
self.unit = "K"
new_unit = self.unit
return round(new_temp,2), new_unit
else:
return round(self.val,2), self.unit
def __str__(self):
t1 = Temperature(31, "F")
print(t1)
问题是打印 t1 以获得 272.59 K 的结果
解决方案
你只需要实现 __str__ 方法。就像 Java 的 toString()
这可以解决问题:
def __str__(self):
return "%f %s"%(self.val,self.unit)
推荐阅读
- c# - 命令行参数和“字节”数组
- php - 将变量从一页传递到表单
- azure - 从 cosmosDB 文档的嵌套数组中删除数据
- python - 将类对象作为引用参数传递
- eclipse - 在 Eclipse 首选项中配置 maven 原型后,我的磁盘空间不足
- node.js - 如何从 mongodb 的子集合中获取数据?
- javascript - 如何使用 javascript/jquery 使用动态 json 数据无缝显示进度
- javascript - 捕获 FullCalendar4 点击日期数字事件
- python - 数据框切换日期开始星期日期从星期六开始
- python - python-telegram-bot 在群聊中回复特定用户