share function argument between subsequent calls but not between class instances!

Felipe Almeida Lessa felipe.lessa at gmail.com
Sat Feb 18 12:01:12 EST 2006


Em Sáb, 2006-02-18 às 16:50 +0000, Duncan Booth escreveu:
> marker = object()
> 
> class Test(object):
>     def __init__(self):
>         self.L = []
> 
>     def f(self,a, L=marker):
>         if L is marker:
>             L = self.L
>         L.append(a)
>         return L 

As hasattr(None, "append") == False, you could also do:

class Test(object):
    def __init__(self):
        self.L = []

    def f(self, a, L=None):
        if L is None:
            L = self.L
        L.append(a)
        return L

-- 
"Quem excele em empregar a força militar subjulga os exércitos dos
outros povos sem travar batalha, toma cidades fortificadas dos outros
povos sem as atacar e destrói os estados dos outros povos sem lutas
prolongadas. Deve lutar sob o Céu com o propósito primordial da
'preservação'. Desse modo suas armas não se embotarão, e os ganhos
poderão ser preservados. Essa é a estratégia para planejar ofensivas."

  -- Sun Tzu, em "A arte da guerra"




More information about the Python-list mailing list