Pycharm警告SqlAlchemy模型中的意外类型
在一个SqlAlchemy模型中,我在pycharm里收到了一个警告,提示某个列的类型不太对。
下面是产生这个警告的简化代码:
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class Peptide(Base):
__tablename__ = 'peptides'
sequence = Column(String, primary_key=True)
scan = Column(Integer)
def __init__(self, scan, sequence):
self.scan = scan
self.sequence = sequence
def __repr__(self):
return '<Peptide "%s" Scan %i>' % (self.sequence, self.scan)
这个警告是针对self.scan
在__repr__
方法里的。如果我把格式字符串改成:
return '<Peptide "%s" Scan %s>' % (self.sequence, self.scan)
这个警告就消失了。但实际上,self.scan在模型中是定义为整数,而不是字符串。奇怪的是,下面这个字符串却没有产生任何警告:
return '<Scan %i>' % self.scan
这是pycharm检查器的过度反应,还是和SqlAlchemy的类型有关呢?