我如何使用字典作为类的参数并使用它?

时间:2019-12-16 07:02:25

标签: python function class dictionary

我希望字典作为类中的参数来调用,并希望将其与类中的函数一起使用。

class video_0(data):

def check_internal(self):
    if 'internal' in self.data['video_0']:
        return True
    else:
        return False

def check_sdcard(self):
    if 'sdcard' in self.data['video_0']:
        return True
    else:
        return False

这里的数据就是字典。我试图做这样的事情。

data = {
"video_3": {
    "internal": {
        "del_status": 1,
        "del_start": 1574164254340.0,
        "del_end": 1574164254345.0,
        "copy_start": 1574162274613.0,
        "copy_end": 1574162274624.0,
        "copied": 1,
        "fail_reason": ""
    },
    "sdcard": {
        "del_status": 1,
        "del_start": 1574829181577.0,
        "del_end": 1574829181577.0,
        "copy_start": 1574162275033.0,
        "copy_end": 1574162275130.0,
        "add_status": 1
    },
    "starttime": 1574162215744.0,
    "duration": 57891,
    "endtime": 1574162273635.0,
    "size": 3754770
},

这是我想在课堂上使用的输入字典。

3 个答案:

答案 0 :(得分:0)

我相信您想将字典初始化为init的参数(实例变量),如下所示。

class video_0:

    def __init__(self, data):
        self.data = data

其余与您的方法相同

答案 1 :(得分:0)

您可以通过构造函数传递数据

class video_0():
    def __init__(self, data):
        self.data = data

    def getData(self):
        return self.data


new_dic = {'Name': 'John'}     
vid = video_0(new_dic)

print(vid.getData())

答案 2 :(得分:0)

我认为您想要的是__init__方法。要将参数传递给类对象,使用__init__方法。 Python中的class ChildClass(ParentClass)表示ChildClass正在扩展ParentClass

class video_0:
    def __init__(self, data):
        self.data = data

    def check_internal(self):
        if 'internal' in self.data['video_0']:
            return True
        else:
            return False

    def check_sdcard(self):
        if 'sdcard' in self.data['video_0']:
            return True
        else:
            return False

    def check_internal_copied(self):
        if 'copied' in self.data['video_0']['internal']:
            return True
        else:
            return False

    def check_internal_del_status(self):
        if 'del_status' in self.data['video_0']['internal']:
            return True
        else:
            return False

c = video_0(data)
c.check_internal_copied()