[英]Python's equivalence of Typescript's indexable type?
在 typescript 中,有一個名為索引簽名的構造,例如,讓我表達特定 object 的所有屬性都具有字符串類型的值,即:
type Foo = { [key: string]: string }
我如何在 Python 中鍵入類似提示,例如表示 class 的所有屬性都應具有字符串類型的值? 我想這樣做的原因是因為我有一個 Python class 其屬性事先不知道,但動態設置。
你的Foo
類型的等價物是一個dict
,其中的鍵和值都具有str
類型:
Foo = dict[str, str]
如果您通過__getattr__
動態生成自定義 class 的屬性,則__getattr__
的簽名決定屬性的類型:
class Foo:
def __getattr__(self, name: str) -> str:
return "foo"
f = Foo()
reveal_type(f.bar) # note: Revealed type is "builtins.str"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.