[python] OT: překlad pojmů "first-class object" a "stream object"

Petr Přikryl prikryl na atlas.cz
Úterý Duben 27 21:48:58 CEST 2010


Michal Vyskocil
: >Přikryl Petr
: >...
: > otázka, jestli je to vhodný název pro pojem
: > (plnohodnotný objekt). Taky se k tomu můžu postavit
: > tak, že by to nebylo vnucováno jako kodifikovaný pojem,
: > ale prostě jako srozumitelné vyjádření -- opis významu.
: 
: Se slovem plnohodnotný je problém, že se to vztahuje spíše k jazyku,
: než tomu objektu. Takže při opisném použití bych asi napsal něco jako
: 
: """
: Objekty a funkce v Pythonu jsou plnohodnotné složky/elementy/...
: jazyka. Mohou být použity jako argument, či návratová hodnota funkce.
: V angličtině se označují termínem first-class object.
: """
 
No, tady nevím, jestli si rozumíme. Objekty jsou objekty (plnohodnotné).
Nemůžou být ničím jiným. Jsou to objekty z definice.

Funkce jsou taky objekty (plnohodnotné). Mají třídu, můžeme na ně dělat
reference. Mají atributy, funkce mají také metody...  "Funkce jsou objekty se vším všudy."

Třídy jsou taky plnohodnotné objekty. Mají svou (meta)třídu, lze na ně
dělat reference (tj. předávat). Mají atributy, mají také metody... 
"Třídy jsou objekty se vším všudy."

Plnohodnotnou "složkou" jazyka může být cokoliv, třeba přiřazení.
Takže ne nějaké abstraktní složky jazyka, ale skutečné objekty.

c:Python31>python
Python 3.1.2 (r312:79149, Mar 21 2010, 00:41:52) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:  pass
...
>>> B = A
>>> id(B)
12721968
>>> id(A)
12721968
>>> type(A)
<class 'type'>
>>> a = B()
>>> type(a)
<class '__main__.A'>
>>> id(a)
12112816
>>> def f(x): pass
...
>>> type(f)
<class 'function'>
>>> id(f)
12524040
>>>


Další informace o konferenci Python