在python中使用类作为属性

时间:2018-04-27 12:05:53

标签: python

我是python的新手(来自Java世界)。我有一个有两个属性的类。我需要另一个应该是对象的属性。

我怎样才能以pythonic的方式做到这一点?

这就是我试过的

class DummyData():
    def __init__(self,lat,long):
        self.lat = lat
        self.long = long
        self.data = []
loc_1 = DummyData(12,22)
my_data = {
    "mess_11" : 0.002,
    "mess_22" : 2.222,
    "mess_33" : 3.23

}

loc_1.data = my_data

1 个答案:

答案 0 :(得分:2)

你想要keyword args吗?

class DummyData:
    def __init__(self,lat,long,**kwargs):
        self.lat = lat
        self.long = long
        self.data = kwargs

loc_1 = DummyData(12,22,mess_11=0.002,mess_22=2.222,mess_33=3.23)
print(loc_1.data['mess_11']) # 0.002

或只是一个dict论点?

class DummyData:
    def __init__(self,lat,long,dct):
        self.lat = lat
        self.long = long
        self.data = dct

loc_1 = DummyData(12,22,{
    "mess_11" : 0.002,
    "mess_22" : 2.222,
    "mess_33" : 3.23
})
print(loc_1.data['mess_11']) # 0.002

还是其他什么?

class DummyData:
    def __init__(self,lat,long,dct):
        self.lat = lat
        self.long = long
        self.data = type('myobj', (), dct)

loc_1 = DummyData(12,22,{
    "mess_11" : 0.002,
    "mess_22" : 2.222,
    "mess_33" : 3.23
})
print(loc_1.data.mess_11) # 0.002