Typevar als Diktatschlüsseltyp Hinweis "hat in diesem Zusammenhang keine Bedeutung"Python

Python-Programme
Anonymous
 Typevar als Diktatschlüsseltyp Hinweis "hat in diesem Zusammenhang keine Bedeutung"

Post by Anonymous »

Der Kontext:
Ich habe einen Diktat, dessen Schlüssel willkürliche Typen sind und deren Werte eine Zeichenfolge sind, die eine Zeichenfolge aufnehmen und eine Instanz des gleichen Typs wie der Schlüssel zurückgeben. Zum Beispiel: < /p>

Code: Select all

class Hero:
def __init__(self, name):
self.name = name

all_heroes = {
"deadpool": Hero("wade wilson"),
"wolverine": Hero("james howlett")
}

REGISTERED_CONVERTERS = {
Hero: all_heroes.get,
int: int,
}

hero_lookup = REGISTERED_CONVERTERS[Hero]
assert hero_lookup("deadpool").name == "wade wilson"

int_lookup = REGISTERED_CONVERTERS[int]
assert int_lookup("5") == 5
Das Problem:
Ich möchte ordnungsgemäß einen Hinweis geben, dass dieser Diktat der Konverterfunktionen
Was nicht funktioniert:

Code: Select all

from typing import Callable, TypeVar

T = TypeVar("T")
TypeConverter = Callable[[str], T]
REGISTERED_CONVERTERS: dict[type[T], TypeConverter] = {
int: int,
}
Pylance ist mit dem t im TypeConverter alias zufrieden, beschwert sich jedoch über den T -Taste T :

Code: Select all

Type variable "T" has no meaning in this context Pylance(reportGeneralTypeIssues)
(constant) T: type[T]
Ich dachte

Code: Select all

T = TypeVar("T")
REGISTERED_CONVERTERS: dict[type[T], Callable[[str], T]] = {
int: int,
}
Das scheint schlechter zu sein, da Pylance jetzt die gleiche Beschwerde über beide t s
Was mache ich falsch oder ist dies ein Pylance -Problem?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post