在循环中创建新的类实例,创建变量名类变量时,任何帮助都会很好


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)

相关内容

最新更新