![](/img/trans.png)
[英]AttributeError: '***' object has no attribute '***_set'
[英]AttributeError: 'set' object has no attribute 'b'
我有以下代码:
N1 = int(input())
a = set(list(map(int, input().split())))
N2 = int(input())
for i in range(N2):
b = input().split()
c = set(list(map(int, input().split())))
a.b[0](c)
print(sum(a))
使用典型的输入,列表b
如下所示:
b = ['intersection_update', '10']
ab[0](c)
什么问题? 显然我没有正确评估它。
这个概念似乎很好,但似乎set a
无法采用实际上是列表元素的属性。
我要评估的是:
a.intersection_update(c)
这是我得到的错误:
Traceback (most recent call last):
File "solution.py", line 7, in
a.b[0](c)
AttributeError: 'set' object has no attribute 'b'
我认为您想使用getattr
来获取一个属性,该属性的名称作为字符串存储在另一个变量中:
getattr(a, b[0])(c)
您当前的代码是寻找一个名为属性b
的a
集。
您无法在Python中使用点运算符进行这种间接属性访问。 使用getattr()
代替:
>>> a = {1, 2, 3, 4, 5}
>>> c = {3, 4, 5, 6, 7}
>>> b = ['intersection_update', '10']
>>> getattr(a, b[0])(c)
>>> a
{3, 4, 5}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.