我有点困惑这里到底出了什么问题。我已经看到很多关于以下错误的问题,但仍然找不到我的代码的正确答案。我刚刚开始使用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()))
答案 0 :(得分:1)
您已将/usr/bin/{gcc42, g++42}
定义为temp
类的方法。
这意味着您应该从Weather
类的实例调用它。
在这种情况下,我建议不要使用课程。
Python wisdom的一般说明如果你有一个包含两个方法的类,其中一个是Weather
,那么你基本上就有一个函数。所以使用一个函数:
__init__