簡體   English   中英

Python 等同於 Typescript 的可索引類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM