[EMAIL PROTECTED] schrieb:
>> cnt = 1
>> def foo():
>>      global cnt
>>      cnt += 1
>>      return cnt
>>
>> def bar(x=foo()):
>>      print x
>>
>> bar()        # 2
>> bar()        # 2
>> bar()        # 2
> 
> Looks to me like you want to use the following programming pattern to
> get dynamic default arguments:
> 
> cnt = 1
> def foo():
>       global cnt
>       cnt += 1
>       return cnt
> 
> def bar(x=None):
>       if x is None:
>               x = foo()
>       print x
>  
> bar() # 2
> bar() # 3
> bar() # 4

yes, I haven't thought of that
nowI changed my class to

class Graph:
        settings = {
                "NumNodes" : 10,
                "MinNodes" : 2,
                "MaxNodes" : 5
        }
        def randomizeEdges(self,
                lowhigh = (settings["MinNodes"], settings["MaxNodes"])):
                low, high = lowhigh
                for node in self.nodes:
                        x = random.randint(low, high)
                        # link the nodes


maybe the only minor point is that no relationship
can be expressed

settings = {
        "NumNode" : 10,
        "MinNode" : settings["NumNode"] / 2,
        "MaxNode" : settings["NumNode"]
}

but I think the solution is nevertheless ok


Regards, Daniel
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to