构造对象时的单身人士

use*_*466 0 python class

我有一个简单的课程:

class Weather_data():
    def __init__(self, latitude=None, longitude=None, date=None):
        self.latitude = latitude,
        self.longitude = longitude,
        self.request_date = date
Run Code Online (Sandbox Code Playgroud)

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

>>> w2=Weather_data(1.3,1.9,datetime.datetime.now())
>>> w2.latitude
(1.3,)
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

额外奖励:我有另一堂课:

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
Run Code Online (Sandbox Code Playgroud)

当我收缩一个物体时,我得到一个不是元组的浮点数:

>>> p2=Pricer(datetime.datetime.now(),1.3,1.9,100)
>>> p2.latitude
1.3
Run Code Online (Sandbox Code Playgroud)

我不知道这两个班级之间的区别.

mdm*_*dml 6

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

self.latitude = latitude
self.longitude = longitude
Run Code Online (Sandbox Code Playgroud)

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