class Student():
def __init__(self):
self.name = 'abc'
self.age = 24
def load():
with open('person_data.pkl', 'rb') as inp:
values = pickle.load(inp)
return values
def set_class_variables(self, values):
for a,j in values.items():
self.a = j
if __name__ == '__main__':
obj = Student()
values = {'name':'name1', "age":12, "marks":95} #this comes after loading from pickle file.
obj.set_class_variables(values)
此处标记变量不是创建的,而是";a’是用值95创建的。我知道这不是正确的方法,有人能告诉我正确的方法吗。
如果你设置类变量而不是实例变量,你可以这样做
class Student(object):
@classmethod
def set_class_variables(cls, attributes: dict):
for name, value in attributes.items():
setattr(cls, name, value) # or cls.__dict__[name] = value
if __name__ == '__main__':
values = {'name': 'name1', "age": 12, "marks": 95} # this comes after loading from pickle file.
Student.set_class_variables(values)
print(Student.name)