我遇到以下问题:
class Student(): def __init__(self,firstname, lastname, **kwargs): self.firstname = firstname self.lastname = lastname student1 = Student("John" ,"Johnson" , {"Nationality": "Middle-Earth" , "Sports": ["volleyball","skiing"]})
我希望能够创建一个全都有姓和名,但只有一些人具有国籍或体育信息的学生。 (实际上,我正在尝试从json文件重构对象。)因此,我想将kwarg键转换为实例变量名称,例如此伪代码
for key,value in kwargs: self.key = value
以上是伪代码,但是有没有办法在正确的python中做到这一点?换句话说:从kwarg而不是所有预定义派生实例变量名称。
我知道这不会导致防错代码等,但是我想知道是否可以做到。
我遇到了以下问题:Student()类:def __init __(self,firstname,lastname,** kwargs):self.firstname =名字self.lastname =姓student1 = Student(...
您需要将解压缩的kwarg传递给Student
并使用setattr(object, name, value)
来设置值:
您可以在__init__
方法中使用它: