【发布时间】:2019-11-01 08:02:51
【问题描述】:
当您从这样的一些可迭代对象中为实例设置属性时:
class DogWith100Legs():
def __init__(self, legs_colors):
for leg_i, color in legs_colors.items():
self.__setattr__(leg_i, color)
legs_colors = {'leg_1': 'white', 'leg_2': 'brown', ... , 'leg_100':
'black'}
doge = DogWith100Legs(legs_colors)
print(doge.leg_100)
它工作正常。但是 PyCharm 会突出显示 leg_100 并发出警告:“类 'DogWith100Legs' 的未解析引用 'leg_100'。
我为什么要这样做?我想创建树状对象。就像 BeautifulSoup 一样。但是bs4在PyCharm中没有这样的问题
此外,在类似的问题中也有 cmets(例如 PyCharm warns about unresolved attribute for dict generated attributes),人们说这是一种不好的做法
什么是好的做法?或者您是否知道让 Pycharm 平静下来的好方法? (不禁用 Pycharm 检查)
【问题讨论】:
-
如果您有动态属性,您应该将它们存储在字典中。另一方面,腿可以是一个列表。