mypy 报告以下代码中的错误:
import enum
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Enum
Base = declarative_base()
class MyEnum(enum.Enum):
A = 1
B = 2
class MyTable(Base):
__tablename__ = 'my_table'
col = Column(Enum(MyEnum), nullable=False)
c = MyTable(col=MyEnum.A)
Run Code Online (Sandbox Code Playgroud)
以下是错误:
a.py:16: 错误:“MyTable”的“col”类型不兼容(得到“MyEnum”,预期“str”)
如何在不添加“type:ignore”的情况下消除此错误?我还可以将 MyEnum.A 替换为 MyEnum.A.name 以使错误消失。但这看起来并不干净,并且 sqlalchemy 文档中也没有建议。
>>> from ctypes import *
>>> class A(Structure):
... _fields_ = [('a', c_int), ('b', c_int)]
... def __init__(self, x):
... self.a = x + 1
... self.b = x + 2
...
>>> a = A(1)
>>> a.a
2
>>> a.b
3
>>> b = (A * 2)(1, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected A instance, got int
Run Code Online (Sandbox Code Playgroud)
我试图在python中构造一个C结构数组,并希望为数组中的每个元素调用构造函数.我怎么能做到这一点?