我有以下Python 2脚本,它按预期运行,但在PyCharm IDE中提供了两个警告。我可以忽略它们吗?
#!/usr/bin/env python2
# coding=UTF-8
import random,logging
from abc import ABCMeta,abstractproperty
class Upper(object):
__metaclass__ = ABCMeta
def __init__(self):
self._prop = "abc"
@abstractproperty
def prop(self):
pass
@prop.setter
def prop(self, prop):
pass
def peng(self):
print self.prop # <-- Warning 1
self.prop = "xyz"
class Lower(Upper):
@property
def prop(self):
return self._prop
@prop.setter
def prop(self, prop): # <-- Warning 2
self._prop = prop
if __name__ == '__main__':
upperObj = Lower()
print upperObj.prop
upperObj.prop = "def"
print upperObj.prop
upperObj.peng()
print upperObj.prop
输出符合预期:
abc
def
def
xyz
Pycharm给了我两个警告:
我认为这两个警告都是误报,因为在第一种情况下,属性是定义和实现的(虽然在不同的类中),在第二种情况下,我看不到方法签名是如何分歧的。这些警告是误报,可能会被忽略吗?
答案 0 :(得分:0)
似乎PyCharm根本不知道@abstractproperty注释。所以这个警告可以忽略不计。