New submission from vladimir <[email protected]>:
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 <[email protected]>
<http://bugs.python.org/issue9703>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com