Python类 - 必需的位置参数

时间:2017-11-08 21:16:20

标签: python-3.x

我有点困惑这里到底出了什么问题。我已经看到很多关于以下错误的问题,但仍然找不到我的代码的正确答案。我刚刚开始使用Python中的类,我想解码一下(我为不同类型的API数据提供了5种不同的函数)。

class Weather:

    def __init__(self, R):
        self.R = R = requests.get(
        "http://api.openweathermap.org/data/2.5/weather?q=" + CITY + "," + COUNTRY + "&appid=xxx")

    def temp(self):
        """Temp function with conversion to C degree"""

        JSON_OBJECT = self.R.json()
        TEMP_K = (JSON_OBJECT["main"]["temp"])
        TEMP_C = TEMP_K - 273.15
        return (TEMP_C)

想法是将这些2放入“变量”以避免重复:

requests.get(
    "http://api.openweathermap.org/data/2.5/weather?q=" + CITY + "," + COUNTRY + "&appid=xxx")
JSON_OBJECT = self.R.json()

我的错误如下:

TypeError: temp() missing 1 required positional argument: 'self'

这是出现错误的行:

print("Current tempreture in {} is: {} C.".format(CITY, Weather.temp()))

1 个答案:

答案 0 :(得分:1)

您已将/usr/bin/{gcc42, g++42}定义为temp类的方法

这意味着您应该从Weather类的实例调用它。

在这种情况下,我建议不要使用课程。

Python wisdom的一般说明如果你有一个包含两个方法的类,其中一个是Weather,那么你基本上就有一个函数。所以使用一个函数:

__init__