gpt4 book ai didi

python - 将字典值作为构造函数的参数传递

转载 作者:太空狗 更新时间:2023-10-29 22:13:14 25 4
gpt4 key购买 nike

我是 Python 新手。我需要创建一个简单的学生类,其中包括名字、姓氏、ID 和一个将类(class)名称映射到其年级的字典。

class Student:
def __init__(self, firstName, lastName, id, _____ (dictionary values)):
self._firstName = firstName;
self._lastName = lastName;
self._id = id;

self.

我的问题是如何在构造函数中初始化字典值?

例如,假设我想将 3 门类(class)添加到成绩映射:“数学:100”“生物:90”“历史:80”

例如:

student1 = Student("Edward", "Gates", "0456789", math: 100, bio: 90, history: 80)

最后 3 个值应该进入字典。

由于可以作为字典一部分的键值的数量可能会有所不同,我应该在构造函数参数签名中写什么?

我想在调用构造函数时发送所有学生值...

最佳答案

如果您希望添加字典,Mathias 的答案足以满足 python 中的 key word arguments

但是,如果您希望从关键字参数中添加对象变量,则需要 setattr

例如,如果你想要这样的东西:

student1 = Student("Edward", "Gates", "0456789", {'math': 100, 'bio': 90, 'history': 80})
print student1.math #prints 100
print student1.bio #prints 90

那么这就可以了:

class Student(object):
def __init__(self, first_name, last_name, id, **kwargs):
self.first_name = first_name
self.last_name = last_name
self.id = id
for key, value in kwargs.iteritems():
setattr(self, key, value)

student1 = Student("Edward", "Gates", "0456789", {'math': 100, 'bio': 90, 'history': 80})

请注意,**kwargs 只会解压字典或元组的元组之类的东西。如果您希望发送不带键的值列表,您应该使用 *args。查看 here 以了解更多信息。

关于python - 将字典值作为构造函数的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25134417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com