[python] diskuze

Quick Milan milan na 3trees.cz
Pondělí Červen 21 11:30:06 CEST 2004


> Pratele.
> Vcera jsem psal SAXParser v Pythonu, vesele si pobrukoval
> ale pak mi spadla celist. Narazil jsem na neco co mi vyrazilo
> dech.
> 
> Zjednoduseny priklad:
> --------------------------------------------------------------------------
> --------------------
> jakub na gelion:~$ python2.1
> Python 2.1.3 (#1, Apr 20 2002, 10:14:34)
> [GCC 2.95.4 20011002 (Debian prerelease)] on linux2
> Type "copyright", "credits" or "license" for more information.
> >>> class maso:
> ....     nazev = ""
> ....     seznam = []
> ....
> >>> a = maso()
> >>> b = maso()
> >>>
> >>> a.nazev = "kotleta"
> >>> a.seznam.append("varena")
> >>>
> >>> b.nazev = "koleno"
> >>> b.seznam.append("uzene")
> >>>
> >>> print a.nazev
> kotleta
> >>> print a.seznam
> ['varena', 'uzene']
> >>> print b.nazev
> koleno
> >>> print b.seznam
> ['varena', 'uzene']

a co takhle:::

class maso:
    def __init__(self):
        self.nazev = ""
        self.seznam = []
a = maso()
b = maso()
a.nazev = "kotleta"
a.seznam.append("varena")

b.nazev = "koleno"
b.seznam.append("uzene")
print a.nazev
kotleta
print a.seznam
['varena']
print b.nazev
koleno
print b.seznam
['uzene']

> --------------------------------------------------------------------------
> -------------------------
> U objektu a i b seznam zaujima stejnou adresu v pameti. Nazev ne.
> Koukam na to jako tele a nevim jak to obejit. Jsou moznosti:
> 
> a) Jsem opravdu tele a neumim pouzivat objekty v Pythonu
> b) Je to spravne chovani, ktere mi ale naprosto nevyhovuje
> c) Je to chyba Pythonu jako hrom
> 
> Doufam ze za a) je spravne, jinak bych asi python opustil
> jako spatne navrzeny objektovy jazyk.
> 
> verze 2.2 a 2.3 to delaji take.
> 
> S pozdravem Jakub Coufal
> 
> 
> _______________________________________________
> python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python





Další informace o konferenci Python