/ / python 2 błąd składni podczas uruchamiania kodu python 3 - python, python-2.7, python-3.x, adnotacje, podpowiedzi typu

błąd składni Pythona 2 przy uruchomieniu kodu Pythona 3 - python, python-2.7, python-3.x, adnotacje, typ-podpowiedź

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 № 1

Nie, 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