Megjelent a Python 3.0

Címkék

A Python 3.0 a 2.x vonallal (szándékosan) inkompatibilis új verziója a nyelvnek. A nyelv többnyire változatlan, de sok dologban, különösen a karakterláncok (str) és szótárak (dict) kezelésében jelentősen változott.

Ezeken kívül sok idejétmúlt dolgot véglegesen eltávolítottak belőle, és a standard könyvtárat is kitakarították, átszervezték. Az átállást az októberben kiadott 2.6-os verzió hivatott megkönnyíteni, amelybe az újdonságok jelentős részét már bevezették.

Python 3.0 final released
What’s New In Python 3.0

Hozzászólások

Ez mind örvendetes, csak most az amúgy is szűkös magyarnyelvű irodalma a nyelvnek egyik napról a másikra használhatatlanná avult el!
:-{)E
Mennyi idő alatt lehet megtanulni angolul?
--
не закурится!

Szakmai szinten, hogy az angol doksit értsd? 2 hónap, max 3. Nem akkora ördöngősség, persze embere válogatja. Van, akinek 5 év is kevés, de ha valamilyen idegen nyelv már megy, akkor nem a nyelvtanulási készségeddel van gond, így nem kell sok idő az alapvető szűk szakmai szövegértés elsajátításához.

Van esetleg valaki köztetek, aki el tudná mondani, mit jelent, hogy szándékosan inkompatibilis? Hogy miért döntöttek így a szándékos kompatibilitás helyett? PHP esetén ez sokéves szíváshoz vezetett az egész PHPs közösség számára -- így nagyon merésznek tűnik ez a dolog nekem.

Talán értelmezd úgy, hogy egyet hátra léptek, hogy többet léphessenek előre. A visszafelé kompatibilitás sok kellemetlenséget okoz, de az is igaz, hogy könnyelműség lenne mindent felrúgni, viszont néha kell egy ilyen itt-ott... Gondolj csak a BIOS-okra, mint hülye ellenpélda. :) Meg az őskőkori 8086 kompatibilitás.
Persze én nem vagyok szakértő.
Amúgy nekem a 2.4 -> 2.5-ös verzió frissítéseknél is nyarvogott pár program. :P

Biztos voltak/vannak tervezési hibák is, én inkább a megváltozott igényeknek hívnám. Szvsz nagyobb hangsúlyt kap ez a rész.

BTW: Szerintem kimondottan jó, hogy nem kompatibilis visszafelé a nyelv, ez 2.5 éve tudott volt:
http://www.python.org/dev/peps/pep-3000/
(az nem derül ki, hogy az inkompatibilitást mikor jelentették be, feltételezem nem a múlt héten találták ki :)).

A BIOS-os példa nagyon jó, de a legtöbb esetben ezt nem lehet megtenni.

De jo lenne egy ilyen a JAVA-nal is.

haaaaaat nem annyira:) javaban azert lehet hogy tobb business-critical hatalmas alkalmazas irodott, aminek betenne a nyelv ujraertelmezese.

mit tartasz egyebkent javaban aminek meg kellene valtoznia gyokeresen?

(amugy a java7-tel leforditott regi cuccok mar maskepp fognak mukodni, ha jol tudom pl lesz runtime tipuscsekk a generics-ek alapjan, eddig ugye ez csak compile-time volt - de hozzatennem, lefordithato a regi kod, maga nyelvi szinten nem lesz inkompatibilis)

(ja es ugye az assert-ek meg enumok miatt volt nemi kavaras azert, ott azert megleptek amit meg kellett)

Így van. A 2.6-os már megjelent, és biztosan lesz 2.7 is.
Guido van Rossum:
"I expect that there will be parallel Python 2.x and 3.x releases for some time; the Python 2.x releases will continue for a longer time than the traditional 2.x.y bugfix releases. Typically, we stop releasing bugfix versions for 2.x once version 2.(x+1) has been released. But I expect there to be at least one or two new 2.x releases even after 3.0 (final) has been released, probably well into 3.1 or 3.2. This will to some extent depend on community demand for continued 2.x support, acceptance and stability of 3.0, and volunteer stamina."

gugli kezdheti ujrairni a cuccait :)

Amugy orulok mivel jo kis nyelv ez, szeressuk.

Egy anlgaii etegyem ktuasátai szenirt nem szimát melyin serenrodbn vnanak a
bteûk egy szbóan, az etegyeln ftonos dloog, hogy az eslõ és az ultosó bteûk
a hölyeükn lneegyek. A tböbi bteu lheet tljees össze-vabisszásagn, mgiés
porbléma nlkéül oalvsahtó a szveög. Eennk oka, hogy nem ovalusnk el mniedn
bteût mgaát, hneam a szót eszgébéen. És tényleg.

Az Unicode string kellett. Azt, hogy a print ezentul fv., el tudom fogadni.
Nade 'print(x, end=" ")'???
Nem lehetett volna egy print meg egy println?

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

A println-t nem kell, mert az van print néven.
A printet már kicsit problémásabb, mert van ilyen nevű fv. :)

Egyébként ilyen alap dolgokat jobb volna, ha nem nekem kéne megírni és hozzáadni minden programomhoz...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Eddig se volt külön print meg println utasítás:

Old: print x, # Trailing comma suppresses newline
New: print(x, end=" ") # Appends a space instead of a newline

Old: print # Prints a newline
New: print() # You must call the function!

De ha neked nagyon tetszik a print()/println(), akkor lecserélheted a __builtin__.print -et a saját print() függvényedre és írsz egy println()-t. Éppen ez a print -> print() változtatás egyik előnye!

Nem az elnevezés a lényeg, hanem eddig odaírtam a végére egy ','-t és nem volt újsor, most meg azt kell odaírnom, hogy ',end=" "'. Ez nem a legkényelmesebb megoldása a problémának...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Enberek!
1.) MySQLdb-t hol találok Python 3.0-hoz?
2.) Azt, hogy "from Tkinter import *" most miért kell így írni: "from tkinter import *"?
Bár lehet, hogy kis t-vel sem működik, (de legalább nem áll ott meg) mert most még az "import MySQLdb"-nél akadtam el. MySQLdb hiányában.

--
не закурится!