[Python-ideas] Add 'use warnings' directive, like in Perl (original) (raw)
Dennis Kaarsemaker dennis at kaarsemaker.net
Wed Feb 11 10:03:11 CET 2015
- Previous message: [Python-ideas] Add 'use warnings' directive, like in Perl
- Next message: [Python-ideas] Add 'use warnings' directive, like in Perl
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Eduard,
What you describe is not at all equivalent to 'use warnings' in perl. 'use warnings' is a directive to enable/disable all or certain warnings perl code may emit. The equivalent of this exists in python:
https://docs.python.org/3.1/library/warnings.html
On di, 2015-02-10 at 18:04 +0200, Eduard Bondarenko wrote:
Hello group,
my name is Eduard. I came into the Python community with an idea to add (implicitly or explicitly) 'use warnings' directive into the python's programs. I think that everyone who worked with Perl understand what I am talking about. For the rest I will explain the idea. Actually, this is my first experience for writing into the community like this, so excuse me if you found some mistakes or oddities. Also I do not know whether you are already talk about this topic..in any case - sorry. So, imagine that you have a program: #!/usr/bin/python word = rawinput("Enter line : ") if word == "hello": print ("You wrote 'hello'") else: if world == "buy": #Error! should be word not world print "Buy" else: iamnotfunction #Also error This script contains two errors. And in both cases we will know about it at runtime. And the most worst thing is that you will not know about these errors until someone enters anything other than the "hello" word.. Try and except blocks do not solve this problem. Within this approach we also receive problem at runtime. What I propose ? I propose to add 'use warnings' directive. This directive will provide deeply verification. Like this: #!/usr/bin/python use warnings word = rawinput("Enter line : ") if word == "hello": print ("You wrote 'hello'") else: if world == "buy": #Error! should be word not world print "Buy" else: iamnotfunction #Also error Output: Use of uninitialized value world in eq (==) at test.py line .. Useless use of a constant (iamnotfunction) in void context at test.py line .. The user will see the output like this and the program will not start.
To my mind the good idea is to explicitly set this directive. If developer does not want spend time for this checking, he can omit 'use warning' directive. Also it will not corrupt the existing programs. And developers will have a chance to add this line gradually.
Many thanks! - Eduard
Python-ideas mailing list Python-ideas at python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
-- Dennis Kaarsemaker http://www.kaarsemaker.net
- Previous message: [Python-ideas] Add 'use warnings' directive, like in Perl
- Next message: [Python-ideas] Add 'use warnings' directive, like in Perl
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]