static? + some stuff

Daniel Schüle for_usenet2000 at yahoo.de
Tue Nov 4 19:22:46 CET 2003


[...]

> is "cnt" considered to be used as "static" or not
> what if i would write ...
> foo.cnt += 1    #static
> and later in one of member functions
> self.cnt = 1    #non static

after long thinking i came to the conclusion that .. from what KefX said ..
"assigning to it .. would smash 'static' for this instance of the class"
i would say ...

class some_class:
    cnt = 0
    def __init__(self):
        foo.cnt += 1
        self.my_id = foo.cnt
    def some_func(self):
        self.cnt = 100
    def print(self):
        print foo.cnt

x = some_class()
x.print()    #1
y = some_class()
y.print()    #2

x.some_func()        #<--- smashes cnt ONLY for x instance?!?!
x.print()    #100

z = some_class()    #..but not for the instances that might come
z.print()    #3

i haven't tested that, ALL OUTPUT assumed!!!

[...]






More information about the Python-list mailing list