New submission from vladimir <golubovic.vladimir...@gmail.com>:

This program:

class t( object):
        def __init__(self,ime,param1=[],param2=[]):
                print "+++init+++"
                print "ime = ",ime
                print "param1 = ", param1
                print "param2 = ", param2
                print
                self.ime = ime
                self.sirina = param1
                self.visina = param2
        def load(self):
                print "load self.ime = ",self.ime
                self.sirina.append('a')
                self.visina.append('b')


t1 = t("jedan",[1,2],[3,4])
t2 = t("dva",[5,6],[7,8])
t3 = t("tri")
t3.load()
t4 = t("cetiri")

produces this output:

+++init+++
ime =  jedan
param1 =  [1, 2]
param2 =  [3, 4]

+++init+++
ime =  dva
param1 =  [5, 6]
param2 =  [7, 8]

+++init+++
ime =  tri
param1 =  []
param2 =  []

load self.ime =  tri
+++init+++
ime =  cetiri
param1 =  ['a']
param2 =  ['b']



Question:

        How's  possible that call t4 = t("cetiri")
        gives param1 value ['a'] and
              param2 value ['b']

Is it possible that is bug or my computer gone crazy or maybe i am

executed on:

Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
[GCC 4.3.3] on linux2

----------
messages: 115137
nosy: vladimir
priority: normal
severity: normal
status: open
title: default param values
type: behavior
versions: Python 2.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue9703>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to