python - 在Python中使用类作为属性

标签 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

最佳答案

你想要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

或者只是一个字典参数?

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

关于python - 在Python中使用类作为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50062029/

相关文章:

python - python-pptx中insert_table的表格高度

python - 我如何判断一个类是否有方法 `__call__` ?

python - 根据另外两个数组的前一个和后一个元素的差异创建新数组

python - Redis channels -- 抓取key时的WRONGTYPE操作

python - 如何在databricks作业中自动导出仪表板

python - 如何准备字符串以使用不明确的数组进行格式化?

python - 我们如何使用 pandas 生成最小值、最大值、平均值、中位数……作为数据框的新列?

python - 客户端 Python 在没有 socket.close() 的情况下关闭我的 TCP 连接

python - 在 python 中使用 pandas 对列表元素进行分组

python - Notepad++ 的 Python 脚本中的可选参数