abusing __builtins__
Tim Peters
tim.one at home.com
Mon Feb 26 01:36:47 EST 2001
More information about the Python-list mailing list
Mon Feb 26 01:36:47 EST 2001
- Previous message (by thread): abusing __builtins__
- Next message (by thread): abusing __builtins__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Tim] >> The language may someday make "GlobalVariable" the name of its >> own builtin,> and then your code won't work correctly if you >> either try to use the new builtin or call any other module that >> does (incl. without limitation std library modules). [Vassilis Virvilis] > This I don't get it. Why is that? I think because you're reading it the opposite of the way it's written <wink>: I'm not saying you can't get at *your* meaning of the name anymore, but that the *new* meaning gets masked (because you've overwritten it). > ... > Consider the following imaginary example. In a project where there is no > need to open files one replaces the open function. So this project will > never manage to open a file but aside from that it will continue to work > as designed. Very dangerous. It's virtually impossible to write a substantial Python program without invoking at least some of the std libraries. And you simply can't know whether *those* will use "open" across releases. If they do, they certainly aren't expecting to get *your* meaning of the name, they're expecting the builtin meaning. There are uses for that, though. For example, on rare occasions and for debugging purposes, I've replaced the builtin open with my own version that logs the name of the file being opened along with a timestamp. In that case, it's "a feature" that the std libraries also see my redefined version. That was a lifesaver at least once, and it's way cool that Python let me get away with it. It's never meant to be a permanent thing, though. That's OK by Python: it generally supports all the sickness you can inflict on yourself, provided only that you agree in advance that you're in a state of sin and won't complain if you're later condemned for it <wink>. guido-makes-a-nice-living-selling-indulgences-on-the-side-ly y'rs - tim
- Previous message (by thread): abusing __builtins__
- Next message (by thread): abusing __builtins__
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list