0

我有一个简单的课程:

class Weather_data():
    def __init__(self, latitude=None, longitude=None, date=None):
        self.latitude = latitude,
        self.longitude = longitude,
        self.request_date = date

当我构造一个对象时,我有一个单例记录为纬度或经度:

>>> w2=Weather_data(1.3,1.9,datetime.datetime.now())
>>> w2.latitude
(1.3,)

为什么会这样?

奖励:我还有一门课:

class Pricer():

    def __init__(self, realization_date=None, latitude=None, longitude=None, amount_covered=None):
        self.realization_date = realization_date
        self.latitude = latitude
        self.longitude = longitude

当我收缩一个对象时,我得到一个浮点数而不是一个元组:

>>> p2=Pricer(datetime.datetime.now(),1.3,1.9,100)
>>> p2.latitude
1.3

我不知道这两个类之间的区别。

4

1 回答 1

6

您需要在第一个示例中删除这些行之后的逗号,如下所示:

self.latitude = latitude
self.longitude = longitude

逗号告诉 Python 创建包含latitude和的元组longitude。在第二个对象中,您没有逗号,因此您将floats 作为输出。

于 2013-11-04T15:07:27.690 回答