`get_type_hints` occurs NameError only if import `__future__.annotations`
まだ誰も着手していません。
評価
調査の方向性
両方の例を再現し、typing.get_type_hints が future.annotations の有無によってローカル関数の戻り値アノテーションをどのように解決するかを比較します。次に、get_type_hints の実装と、ジェネリックエイリアスおよび遅延アノテーションに関するそのテストを調査します。期待される動作と、サポートされている回避策があれば、それが issue に記載されるか、対象を絞った回帰テストでカバーされれば完了です。
索引モデルが issue の本文から書いたものです。
説明
from typing import get_type_hints
class A[T]:
def __init__(self, x: T):
self.x = x
def foo(self):
def bar() -> T:
return self.x
print(get_type_hints(bar))
A[int](5).foo()
Output: {'return': T}
from __future__ import annotations # Add this
from typing import get_type_hints
class A[T]:
def __init__(self, x: T):
self.x = x
def foo(self):
def bar() -> T:
return self.x
print(get_type_hints(bar))
A[int](5).foo()
Error:
NameError: name 'T' is not defined
Is this the expected behavior?
Also, is there a way to make it work if __future__.annotations is imported?
- 主要言語
- Python
- スター
- 1.8k
- フォーク
- 302
- 平均マージ
- 23時間
- マージ済み PR(30日)
- 8
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
python/typing のほかの issue
-
topic: typing spec
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
topic: typing spec
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
topic: documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
topic: documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
topic: conformance tests topic: typing spec
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
似ている issue
-
🐛 Bug 🔔 Pending processing
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
jumpserver/jumpserver#17584 ·
-
link-check link-check:sphinx-theme
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
OpenHands/extensions#626 · コメント 1 件 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
CSCfi/sd-search-api#39 ·