Python中文
首页
教程
问答
标签
搜索
登录
注册
获取注释的NameError,即使我使用类型\检查导入
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有两个带有注释/类型提示的类</p> <p>第一个工作没有任何问题:</p> <pre class="lang-python prettyprint-override"><code>from typing import TYPE_CHECKING if TYPE_CHECKING: from bunyamin.models.exchange import Exchange class Kline: def read_klines(exchange: Exchange): pass </code></pre> <p>第二个非常相似:</p> <pre class="lang-python prettyprint-override"><code>from typing import TYPE_CHECKING if TYPE_CHECKING: from bunyamin.models.timeframe import Timeframe def normalize_dt(dt: datetime, timeframe: Timeframe) -> datetime: # -> This line raises NameError pass </code></pre> <p>但是引发了<code>NameError: name 'Timeframe' is not defined</code></p> <p>我知道我可以用一个字符串(比如<code>'Timeframe'</code>)来代替类本身,但恐怕这不是预期的行为。我错过了什么</p> <p>如果相关的话,我使用的Python版本是3.8.2</p> <p><strong>编辑:</strong></p> <p>当我试图隔离这个问题时,我忽略了所有的“<em>看似不相关的”导入。但是第一个文件实际上在顶部包含<code>from __future__ import annotations</code>,这使得它可以工作。有关详细信息,请参见第一个答案</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>使用<code>TYPE_CHECKING</code>常量时,函数参数注释必须用引号括起来,使其成为“正向引用”,以便在运行时向解释器隐藏它,如<code>timeframe: 'Timeframe'</code>。因为在Python3.10之前,默认情况下在函数定义时对这些函数进行求值,而在Python3.10之前,对注释的延迟求值将成为默认值</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
创建一个python程序,从websi中提取文件
7 回答
创建一个python程序,告诉我名字和出生年份的人的年龄
9 回答
创建一个Python程序,它接受一个简短的描述并从给定的集合返回一个解决方案(使用nlp)
8 回答
创建一个python程序,用户在其中输入一个月,它会告诉您y的下一个月
6 回答
创建一个python程序,要求用户输入一个偶数奇数
10 回答
创建一个Python程序来修改名称以digi结尾的目录的文本文件
8 回答
创建一个python程序来猜测用户的“秘密号码”?
2 回答
创建一个python算法来训练keras模型来预测一个大的整数序列
3 回答
创建一个python类,它被视为一个列表,但是有更多的特性?
2 回答
创建一个Python类,我可以将其序列化为一个嵌套的JSON obj
9 回答
创建一个python类来查找直线的斜率和长度
9 回答
创建一个Python网络爬虫来获取谷歌Play商店应用程序的元数据
1 回答
创建一个Python网页
3 回答
创建一个python脚本,不断从excel文件中读取数据并进行计算
9 回答
创建一个python脚本,使用tcpdump计算到达网站的数据包数量?
9 回答
创建一个Python脚本,可以运行其他SAS程序并更新Excel工作簿。
8 回答
创建一个python脚本,它将读取csv文件,并使用该输入从web抓取数据finviz.com网站然后将数据导出到csv fi中
4 回答
创建一个python脚本,用mysql数据库中的结构和数据文件创建一个sql转储
7 回答
创建一个python脚本,该脚本将对某个键进行文本文件搜索,并将编号复制到新文件中
5 回答
创建一个Python脚本,该脚本连接到特定端口(SMTP)上的一系列IP
8 回答