-1
我的问题的第一部分是我如何访问类的预设默认参数以将它们的值用作其他参数?我想要做的是这样的:在初始时Python访问默认参数
class C:
def __init__(self, size_hint = (0, 0), **kwargs):
self.size_hint = size_hint
,然后制作一个实例:
>>> c=C(x = self.size_hint)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'self' is not defined
但在初始化时self
和C
也不得而知。
第二个问题是在上面的类定义中,我如何设置kwargs
字典中的键值作为实例属性? 我知道这并不工作,但我的意思是这样的:
for k, v in kwargs.items():
self.k = v
我仍然不完全确定你在第一种情况下要做什么。 –
@学生,你能澄清你的第二个问题吗?为什么你的代码不工作? – skovorodkin
@skovorodkin如果我把'for'循环放在'__init__'中并且像'c = C(x =“C()。X”)那样实例化类''''x的值将被存储在'k'中属性,而不是在'x'中。调用'c.x'会引发'AttributeError:'C'对象没有属性'x'',调用'c.k'给出'C()。X“。 – amirteymuri