我在代码中使用了一个名为pyathena
的模块,我有一个函数接收pyathena connection
:
import pyathena
def fn(conn) -> None:
<DO SOMETHING>
conn = pyathena.connect(s3_staging_dir=f's3://<THE_BUCKET>/', region_name=<REGION>)
fn(conn)
我想键入fn
的conn
参数。你知道吗
我知道conn属于pyathena.connection.Connection
类型,但是
def fn(conn: pyathena.connection.Connection) -> None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
不起作用:
AttributeError: module 'pyathena' has no attribute 'connection'
。你知道吗
做
from pyathena.connection import Connection
def fn(conn: Connection):
...
似乎工作得很好,但我不想在我的代码中公开这个Connection
类,只想做类型暗示。你知道吗
Q:有没有一种方法可以在我的代码中键入提示这个未公开的类,而不必像上面那样导入?
有用的参考:https://github.com/laughingman7743/PyAthena/blob/master/pyathena/init.py
使用deferred annotations:
注释被有效地视为字符串文本。如果您觉得这样会对类型安全性造成太大的危害(例如,因为您可能会拼写错误),那么可以改用
typing.TYPE_CHECKING
。你知道吗化名呢?你知道吗
相关问题 更多 >
编程相关推荐