如何从类中的函数配置类对象方法?

时间:2019-06-12 14:05:23

标签: python

我有一个包含具有默认值的某些属性的类实例。我希望以后可以通过将它们与键和值的库进行比较,然后将类变量更改为相应的库值(如果存在)来更改这些类方法的值。

理想情况下,我希望能够在一个对象中创建一个函数,该对象将库作为参数并相应地更改值。但是我感觉这是不可能的。

有可能吗?如果是这样,怎么办?而且如果不可能,我如何制作一个单独的函数来接收一个对象和一个库,并将对象属性配置为库属性。 (请注意,我不想添加或删除任何属性,只需更改值即可。)

class assignment(object):
    def __init__(self, id):
    self.id = id


    def configureAssignment(self, configFile):

        with open(configFile, "r") as inputfile:
            config = json.loads(inputfile.read())
            print("config is:", config)


        for key in config:
            try:
                self.key = key
            except:
                log("error, non-existent variable defined")

1 个答案:

答案 0 :(得分:0)

您可以使用hasattr()来检查您的类是否具有必需的变量,然后再尝试进行设置:

if hasattr(self, key):
    setattr(self, key, value)

但是,老实说,处理此问题的更安全方法是使用dict键和值初始化类,并让您的函数(和程序的其他方面)操纵 而不是自己操纵类属性。