Using default a empty dictionary as a default value

C

C Gillespie

Dear All,
I ran my code through pylint to clean it up and one of the (many) errors it
through up was
Dangerous default value {} as argument
Bascially, I have:

class NewClass:
def __init__(self, myDict={}):
for key, value in myDict:
print key, value

Obviously, this is not the way it should be done. Should I have a default
value of None for myDict and test for it? Or is there some other way?

Thanks

Colin
 
D

Diez B. Roggisch

C said:
Dear All,
I ran my code through pylint to clean it up and one of the (many) errors
it through up was
Dangerous default value {} as argument
Bascially, I have:

class NewClass:
def __init__(self, myDict={}):
for key, value in myDict:
print key, value

Obviously, this is not the way it should be done. Should I have a default
value of None for myDict and test for it? Or is there some other way?

Yes. That's the way to go.
 
S

SER.RI-TIC-Alexis Roda

C said:
Dear All,
I ran my code through pylint to clean it up and one of the (many) errors it
through up was
Dangerous default value {} as argument
Bascially, I have:

class NewClass:
def __init__(self, myDict={}):
for key, value in myDict:
print key, value

Obviously, this is not the way it should be done. Should I have a default
value of None for myDict and test for it? Or is there some other way?

Take a look at:

http://www.python.org/doc/2.4/tut/node6.html#SECTION006710000000000000000

look for "Important warning"


HTH
--
////
(@ @)
----------------------------oOO----(_)----OOo--------------------------
<> Ojo por ojo y el mundo acabara ciego
/\ Alexis Roda - Universitat Rovira i Virgili - Reus, Tarragona (Spain)
-----------------------------------------------------------------------
 
P

Peter Hansen

C said:
Dear All,
I ran my code through pylint to clean it up and one of the (many) errors it
through up was
Dangerous default value {} as argument
Bascially, I have:

class NewClass:
def __init__(self, myDict={}):
for key, value in myDict:
print key, value

Obviously, this is not the way it should be done. Should I have a default
value of None for myDict and test for it? Or is there some other way?

If you *know* you will not be modifying the contents
of myDict, and you *know* you will not be modifying
the function in the future to do so, then it's
completely safe as written...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,024
Latest member
ARDU_PROgrammER

Latest Threads

Top