Python handles globals badly.
Sven R. Kunze
srkunze at mail.de
Fri Sep 4 14:05:07 EDT 2015
On 04.09.2015 18:55, tdev at freenet.de wrote:
> From knowing e.g Java as OO language I had no need to set
> such a keyword "global" to get write access to class members.
It is true and I really dislike Java for having this. Please consider this
class MyClass:
@classmethod
def method(cls):attribute = 'a' cls.myattribute = 1234
As you see, even when using a class for the purpose, you still need to
reference the class object somehow.
> And now the main point: Cause all of the features and especially
> the singleton construct, I could not believe that Python
> does nearly all for me but forces me then to use such
> a "ugly" keyword "global" in comparison to other OO languages.
It is ugly, that is true. Would something like this help you?
@modulemethod
def method(mod):
attribute = 'a'
mod.myattribute = 123
Works like classmethod but on module level. You still need to explicitly
specify from which namespace you want myattribute but that's the Python
way I think. It applies to instance methods, class methods and all other
types of Python code.
> But I agree, I should have better never mentioned it.
> Please lay OO and sharing globals aside.
>
> It is really about procedural programming and "global"-keyword only.
> That said I will really give no longer any comments about this.
That is sad. :(
I at least would like to know if my suggestion would help? :)
Best,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20150904/81c17f4d/attachment.html>
More information about the Python-list
mailing list