Jedną z najczęściej omawianych funkcji w Pythonie 3.5 są wskazówki dotyczące typów . Przykładem podpowiedzi typu jest mowa w tym artykule , a ten jeden , a jednocześnie z podaniem użyć podpowiedzi typu odpowiedzialnie. Czy ktoś może wyjaśnić więcej na ich temat oraz kiedy należy ich używać, a kiedy nie?
Jeśli mam taką funkcję: def foo(name, opts={}): pass I chcę dodać podpowiedzi do parametrów, jak to zrobić? Sposób, w jaki zakładałem, powoduje błąd składniowy: def foo(name: str, opts={}: dict) -> str: pass Następujące polecenie nie zgłasza błędu składniowego, ale nie wydaje się intuicyjnym sposobem obsługi tego przypadku: def foo(name: str, …
Oto mój kod: function phpwtf(string $s) { echo "$s\n"; } phpwtf("Type hinting is da bomb"); Co powoduje ten błąd: Błąd krytyczny możliwy do uchwycenia: Argument 1 przekazany do phpwtf () musi być instancją ciągu, podano ciąg To więcej niż trochę orwellowski, gdy PHP rozpoznaje i odrzuca pożądany typ w tym …
Mam w Pythonie funkcję, która może zwrócić a boollub a list. Czy istnieje sposób na określenie typów zwrotów za pomocą podpowiedzi typu. Na przykład, czy jest to właściwy sposób, aby to zrobić? def foo(id) -> list or bool: ...
Poniższy kod: <?php class Type { } function foo(Type $t) { } foo(null); ?> nie powiodło się w czasie wykonywania: PHP Fatal error: Argument 1 passed to foo() must not be null Dlaczego nie można przekazać null, tak jak w innych językach?
Załóżmy, że mam funkcję: def get_some_date(some_argument: int=None) -> %datetime_or_None%: if some_argument is not None and some_argument == 1: return datetime.utcnow() else: return None Jak określić typ zwracania czegoś, co może być None?
Jeśli chodzi o konstruktory, przypisania i wywołania metod, IDE PyCharm jest całkiem niezłe w analizowaniu mojego kodu źródłowego i określaniu, jakiego typu powinna być każda zmienna. Podoba mi się, gdy jest to poprawne, ponieważ zapewnia mi dobre uzupełnienie kodu i informacje o parametrach oraz ostrzega mnie, gdy próbuję uzyskać dostęp …
PHP 7 wprowadza deklaracje typu zwracanego . Oznacza to, że mogę teraz wskazać, że zwracana wartość jest pewną klasą, interfejsem, tablicą, możliwością wywołania lub jednym z nowo wskazanych typów skalarnych, co jest możliwe w przypadku parametrów funkcji. function returnHello(): string { return 'hello'; } Często zdarza się, że wartość nie …
Wypróbowuję adnotacje typu Pythona z abstrakcyjnymi klasami bazowymi, aby napisać niektóre interfejsy. Czy istnieje sposób na dodanie adnotacji do możliwych typów *argsi **kwargs? Na przykład, jak można by wyrazić, że sensowne argumenty funkcji to jeden intlub dwa ints? type(args)daje Tuplewięc przypuszczam, że dodam adnotację jako Union[Tuple[int, int], Tuple[int]], ale to …
Chcę użyć wskazówek dotyczących typów w moim bieżącym projekcie Python 3.5. Moja funkcja powinna otrzymać funkcję jako parametr. Jak mogę określić funkcję typu w moich wskazówkach dotyczących typu? import typing def my_function(name:typing.AnyStr, func: typing.Function) -> None: # However, typing.Function does not exist. # How can I specify the type function …
Korzystając z adnotacji funkcji Python 3, można określić typ elementów zawartych w jednorodnej liście (lub innej kolekcji) w celu podpowiedzi typu w PyCharm i innych IDE? Przykład kodu w pseudo-Pythonie dla listy int: def my_func(l:list<int>): pass Wiem, że jest to możliwe przy użyciu Docstring ... def my_func(l): """ :type l: …
Rozważ następujący fragment kodu: from collections import namedtuple point = namedtuple("Point", ("x:int", "y:int")) Powyższy Kod jest tylko sposobem na zademonstrowanie tego, co próbuję osiągnąć. Chciałbym zrobić namedtupleze wskazówkami dotyczącymi typu. Czy znasz jakiś elegancki sposób, jak osiągnąć zamierzony efekt?
Próbuję podzielić moją ogromną klasę na dwie; cóż, w zasadzie do klasy "main" i mieszanki z dodatkowymi funkcjami, takimi jak: main.py plik: import mymixin.py class Main(object, MyMixin): def func1(self, xxx): ... mymixin.py plik: class MyMixin(object): def func2(self: Main, xxx): # <--- note the type hint ... Chociaż działa to dobrze, …
W Pythonie 3.x często używa się adnotacji typu zwracanego funkcji, takich jak: def foo() -> str: return "bar" Jaka jest prawidłowa adnotacja dla typu „void”? Rozważam 3 opcje: def foo() -> None: nie logiczne IMO, ponieważ Nonenie jest typem, def foo() -> type(None): używając najlepszej znanej mi składni do uzyskania …
Czy jest jakaś poprawna wskazówka dotycząca typu pliku lub obiektu podobnego do pliku w Pythonie? Na przykład, w jaki sposób mógłbym wskazać wartość zwracaną przez tę funkcję? def foo(): return open('bar')
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.