如何使用类以摄氏度,华氏度或开氏度计算温度?

问题描述 投票:0回答:1

本质上,从给定的代码开始,错误不断重复,涉及元组。我从这里开始要完成此问题,并需要一些帮助。

    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”

python-3.x class object parameters temperature
1个回答
0
投票

这里有很多问题。首先,您未在任何方法中包含self关键字。

使用self关键字获取构造函数中的输入,并通过self以其他方法访问参数。这是Python中的标准OOP方法。

第二,构造函数定义不正确,应该是:

    class Temperature:
         def __init__(self,val, unit):

似乎您正在将Java语法与Python混淆。

© www.soinside.com 2019 - 2024. All rights reserved.