在一個SqlAlchemy模型中,我從pycharm得到一條警告,說一列有一個意外的類型。Pycharm對SqlAlchemy模型中的意外類型發出警告
簡化代碼產生該警告如下:
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)
警告在__repr__
方法給出self.scan
。 如果我改變格式字符串:
return '<Peptide "%s" Scan %s>' % (self.sequence, self.scan)
警告消失。但事實上self.scan已被定義爲模型中的整數,而不是字符串。令人驚訝的是下面的字符串不會產生任何警告:
return '<Scan %i>' % self.scan
這是對pycharm檢查的過度反應,或者是一些涉及到SQLAlchemy的類型?
我在Django中得到了同樣的結果 – velis