0

タプルが指定した型の任意の値を持つことができる型を指定するにはどうすればよいですか?

例えば:

    def _get_writable_values(self, *, username: str, password: str) -> Tuple[WritableValue]:
        h = md5()
        h.update(username.encode(DEFAULT_ENCODING) + password.encode(DEFAULT_ENCODING))
        concatenated_hash = h.hexdigest()
        return (
            username,
            password,
            182,  # ???
            concatenated_hash,
            157,  # ???
        )

次のエラーが表示されます。

Expected type 'Tuple[Union[str, int, bytes]]', got 'Tuple[str, str, int, str, int]' instead.

WritableValueは次のように定義されます。

WritableValue = Union[str, int, bytes]

すべてのサブクラスの型シグネチャをオーバーライドしたくないのですが、ユース ケースの正しいシグネチャは何ですか?

4

2 に答える 2

0

そのためにドットを使用できることがわかりました:

def _get_writable_values(self, *, username: str, password: str) -> Tuple[WritableValue, ...]:
于 2020-06-13T12:46:11.737 に答える