Mam pewną wiedzę na temat Pythona 3 (nie jestem początkującym, ale nie jestem ekspertem). Interesuje mnie tworzenie stron internetowych, więc chcę używać Django. Jakie są różnice między dwiema wersjami Pythona? Jak mam przełączyć z 3 na 2.x?Jak mogę się nauczyć Pythona 2, jeśli znam już Python 3?
Odpowiedz
nie są one tak różne. Prawie wszystko, czego nauczyłeś się w Pythonie 3, przeniesiesz do Pythona 2. Sugerowałbym, żebyś po prostu zanurkował. Czasami zobaczysz komunikat o błędzie, ale przez większość czasu będą one zrozumiałe.
Mój zakład jest, że nauka Django sposób będzie trudniej niż przyzwyczaić Pythonie 2.
Można znaleźć six
biblioteka pomocne, jeśli chcesz napisać kod, który jest solidnie kompatybilny wstecz. W przeciwnym razie, mogę myśleć tylko o dwie rzeczy, które mogą być ważne, aby z góry wiedzieć, jak iść do tyłu Python 2:
unikać przy użyciu klas w starym stylu. W Pythonie 3, można zadeklarować klasę tak, bez żadnego problemu:
class Foo: pass
w Pythonie 2, jeśli to zrobisz, masz klasę w starym stylu, który prawdopodobnie nie ma. Ale nie otrzymasz żadnych komunikatów o błędach, więc mogą pojawiać się subtelne błędy dziedziczenia i pozostać ukryte przez długi czas, zanim spowodują problemy. Więc w Pythonie 2, należy pamiętać, aby jawnie dziedziczą
object
:class Foo(object): pass
Unikaj używania
range(n)
, przynajmniej dla dużych wartościachn
. W Pythonie 3,range
zwraca inteligentny iterator, ale w Pythonie 2,range
zwraca rzeczywistą listę. W przypadku dużych zakresów może spalić dużo pamięci. Aby uzyskać zachowanie Pythona 3 w wersjirange
w Pythonie 2, użyjxrange(n)
. Podobne zastrzeżenia dotyczą metod słownikowychkeys()
,values()
iitems()
. Wszystkie zwracają listy w Pythonie 2. Użyj metoditerkeys()
,itervalues()
iiteritems()
, aby zaoszczędzić pamięć.
Istnieje kilka innych doskonałych odpowiedzi na to pytanie, które obejmują kilka innych szczegółów, takich jak unicode
wsparcia.
Jeśli jesteś już zaznajomiony z Pythona 3, wtedy nie ma prawie żadnychróżnice trzeba będzie się martwić podczas kodowania w Pythonie 2. Różnice najbardziej widoczne dla użytkowników mają zrobić ze szczegółami instrukcja print
, której prawdopodobnie nie będziesz używać w Django.
Po prostu napisz kod i zapytaj o ewentualne problemy z specyficznymi dla.
Kolejną dużą różnicą jest to, jak Python 3 obsługuje kod Unicode - wszystko w Pythonie 3 jest ciągiem unicode lub danymi binarnymi, podczas gdy w Pythonie 2 rozróżniono łańcuchy znaków Unicode i łańcuchy 8-bitowe.
Poniższa strona ma dużo więcej informacji na temat różnicy między Python 2 i 3. http://docs.python.org/release/3.0.1/whatsnew/3.0.html
przeczytać to: http://python3porting.com/differences.html
Należy pamiętać, że istnieje wiele rzeczy po prostu usunięte z Pythonie 2, jak apply(), które w związku z tym nie trzeba się martwić.
Również, jak zauważył senderle, używa się podklasy z obiektu (jest to również zalecane w Pythonie 3, prawdopodobnie z powodu różnic w Pythonie 2).
- 1. kod Pythona 2: jeśli python 3 to sys.exit()
- 2. Projekty nauczyć Python
- 3. Jak mogę się nauczyć Visual C++?
- 4. jak się nauczyć EXTJS
- 5. Jak całkowicie zastąpić pythona 3 pytonem 2 w arch. Linux
- 6. Dylemat: Czy powinienem nauczyć się platformy Seaside lub Python?
- 7. Jak się nauczyć ADO.NET
- 8. przenoszenie programu Python 2 do Pythona 3, generator losowej linii
- 9. Python slice how-to, znam kawałek Pythona, ale jak mogę użyć do tego wbudowanego obiektu slice?
- 10. Jak nauczyć się notacji matematycznej?
- 11. Jeśli Python 3 jest najnowszym pythonem, dlaczego python 2 nadal jest w pobliżu?
- 12. Jaki (rodzaj) projektu mogę utworzyć, aby nauczyć się JavaScript?
- 13. Zwróć identyfikator zasobu, jeśli znam nazwę zasobu
- 14. Jak mogę się nauczyć korzystać z kolekcji Java commons?
- 15. Jak się nauczyć .NET Framework
- 16. Jak szybko nauczyć się WebGL?
- 17. Jak mogę kontrolować, która dystrybucja Pythona ma zainstalować pakiet, kiedy mam Python 2, Python 3 i Anacondę na moim komputerze?
- 18. Python 2 i Python 3 __cmp__
- 19. Sprawdzanie sygnalizatora, jeśli koncentrator już się rozpoczął
- 20. Jak uruchomić python 2 i 3 w systemie Windows 7?
- 21. Jestem kompletną nowicjuszką, jak mogę się nauczyć Node.Js + Express + MongoDB?
- 22. Standardowe rozwiązanie do obsługi Pythona 2 i Pythona 3
- 23. Jak nauczyć się kompilacji Just-in-Time?
- 24. jak nauczyć się podstawowych API javascript?
- 25. Python - Virtualenv, python 3?
- 26. Python: Jak zabronić otwierania aplikacji, jeśli jest już uruchomiony
- 27. Jak mogę zmienić wbudowany python w Sublime Text 2?
- 28. Jak mogę skompilować moją aplikację Python 3 do .exe?
- 29. Jak uczynić SublimeText obsługą adnotacji Pythona 3?
- 30. Jak mogę nauczyć system komputerowy, jak grać w pokera?
Dzięki. Prawdopodobnie popełniłbym ten błąd, nawet nie zdając sobie z tego sprawy. – Orcris