2017-01-19 12 views
5

W języku Python, co oznacza "i" w rozszerzeniu .pyi?Co oznacza "i" w rozszerzeniu Ppy w formacie .pyi?

W książce PEP-484 znajduje się wzmianka o .pyi jako "pliku pośredniczącym", ale bez mnemonicznej pomocy dotyczącej rozszerzenia. Czy "i" oznacza "Uwzględnij"? "Realizacja"? "Berło"?

+0

Według [to] (https://www.filesuffix.com/en/extension/pyi) Opcja 'rozszerzenie pyi' służy do Cognos modelu Files. Być może patrzysz na plik 'pyc' z innym rozszerzeniem, który jest skompilowany w Pythonie. Spróbuj porównywanie sum kontrolnych do rzeczywistej 'pyc' pliku, a następnie wiesz, że to co najmniej plik binarny. –

+0

Zgodnie z dokumentacją w sprawie pakietu Python wydaje się myśli: [Python Informacja] [1] [1]: https://pypi.python.org/pypi/pyi/0.1.0 – NationWidePants

+0

@NationWidePants myślę, że to różne 'pyi'. –

Odpowiedz

1

myślę, że i w .pyi oznacza „Interface”

definicja interfejsu w Java:

interfejs w języku programowania Java jest abstrakcyjnym typem, który służy do określenia zachowań te klasy muszą implementować

  • Z pythonrepozytoriumGitHub:

Każdy moduł Pythona jest reprezentowany przez "odgałęzienie" .pyi. Jest to normalna plik Pythona (to znaczy może być interpretowane przez Pythonie 3) wyjątkiem wszystkich metod pusty.

  • W 'Mypy' repozytorium one wyraźnie wspomnieć pliki „pośredniczące” jako interfejsy publicznych: Plik odcinki

A zawiera jedynie opis publicznego interfejsu z moduł bez wdrożenia.

Ponieważ "Interfejsy" nie istnieją w Pythonie (patrz: SO question between Abstract class and Interface) Myślę, że projektanci zamierzali poświęcić specjalne rozszerzenie.

pyi wdrożenia „en” plik (definicja z Martin Flowers)

Stubs: zapewnienie puszkach odpowiedzi dla połączeń wykonywanych w trakcie badania, zwykle nie reaguje w ogóle do czegokolwiek poza to, co jest zaprogramowana dla test.

Ale ludzie są bardziej zaznajomieni z interfejsami niż pliki „stub”, dlatego łatwiej było wybrać .pyi zamiast .pys aby uniknąć niepotrzebnych nieporozumień.