Steven Schveighoffer: > I think the point is, the statement x = x + 1; isn't any more or less > ambiguous in D than it is in python. There is a well-defined meaning (and > in fact the same meaning).
It's not the same meaning, this program prints "1": import std.c.stdio: printf; class Foo { int x; this() {} void foo() { x = x + 1; } } void main() { Foo f = new Foo(); f.foo(); printf("%d\n", f.x); // prints 1 } An equivalent Python program with "x = x + 1;" prints: UnboundLocalError: local variable 'x' referenced before assignment Because the usage of "self." is obligatory. Anyway, this whole thread is not about Python, it's about D. Bye, bearophile