Mam klasę, która wygląda następująco
class ExperimentResult(BaseDataObject):
def __init__(self, result_type: str, data: dict, references: list):
super().__init__()
self.type = result_type
self.references = references
self.data = data
def __repr__(self):
return str(self.__dict__)
Kod jest napisany w python 3, podczas gdy próbuję uruchomić go w Pythonie 2. Kiedy go uruchomię, dostaję
def __init__(self, result_type: str, data: dict, references: list):
^
SyntaxError: invalid syntax
Czy istnieje „import_from_future” do rozwiązania tego problemu?
Odpowiedzi:
7 dla odpowiedzi № 1Nie, nie ma __future__
przełącz to, że „włączę adnotacje Pythona 3 w Pythonie 2. Jeśli używasz adnotacji do podpowiedzi typu, użyj zamiast tego komentarzy.
Zobacz Sugerowana składnia Pythona 2.7 i kod rozszerzający sekcja PEP 484 i Wpisz sprawdzanie kodu Pythona 2 Sekcja szczegóły dotyczące składni:
Dla kodu, który musi być zgodny z Pythonem 2.7, adnotacje typu funkcji są podane w komentarzach, ponieważ składnia adnotacji funkcji została wprowadzona w Pythonie 3.
W twoim konkretnym przykładzie „to będzie:
class ExperimentResult(BaseDataObject):
def __init__(self, result_type, data, references):
# type: (str, dict, list) -> None
super().__init__()
self.type = result_type
self.references = references
self.data = data