Hi all,
The subject says pretty much all, i would very appreciate an answer. I
tried to search the various forums and groups, but didn't find any
specific answer...
Thanks,
Alex. 12 4529
On Mar 12, 6:19 pm, Alex <alex.pul...@gmail.comwrote:
Hi all,
The subject says pretty much all, i would very appreciate an answer. I
tried to search the various forums and groups, but didn't find any
specific answer...
Thanks,
Alex.
No not really.
There are lots of other ways to structure a Python program though
which makes its omission hardly felt.
- Paddy.
The subject says pretty much all,
Given what I understand about the BEGIN block[1], this is how
Python works automatically:
bash$ cat a.py
print 'a1'
import b
print 'a2'
bash$ cat b.py
print 'b'
bash$ python a.py
a1
b
a2
However, the first import does win and Python caches
module-loading, so take care:
bash$ cat x.py
print 'one'
import a
print 'two'
import b
print 'three'
bash$ python x.py
one
a1
B
a2
two
three
-tkc
[1] http://www.cs.cf.ac.uk/Dave/PERL/node133.html
On Wed, 12 Mar 2008 11:19:05 -0700, Alex wrote:
Hi all,
The subject says pretty much all
Only to people who know what the Perl BEGIN{} block means.
--
Steven
What do you need it for anyway? I just read about it and I think it's
useless
in python.
On Mar 13, 2008, at 1:03 AM, Steven D'Aprano wrote:
On Wed, 12 Mar 2008 11:19:05 -0700, Alex wrote:
>Hi all,
The subject says pretty much all
Only to people who know what the Perl BEGIN{} block means.
--
Steven
-- http://mail.python.org/mailman/listinfo/python-list
On Mar 12, 8:11 pm, Justus Schwabedal <justus.schwabe...@gmx.de>
wrote:
What do you need it for anyway? I just read about it and I think it's
useless
in python.
Perl, like Python, has a separate compilation and run times. One day,
someone who was trying to use Perl for something asked, "You know,
wouldn't it be neat-o if you could execute some Perl code *before* you
compiled the script?" And so (since that's usually enough reason to
add something to Perl) was borne the BEGIN block.
I believe the official rationale was that they wanted to add some
magic variables that affected Perl's compilation and couldn't do it
without a magic block that executed at compile time.
Python solved a similar problem by introducing __future__ imports.
Carl Banks
Alex wrote:
The subject says pretty much all, i would very appreciate an answer. I
tried to search the various forums and groups, but didn't find any
specific answer...
I'd like an answer to this, too. In Perl, I mostly used it for
one-liners, when a variable needed to be initialized to some non-default
value; for example, perl -ple 'BEGIN { $sum = 42 } $sum += $_'.
On Mar 13, 1:37 am, Carl Banks <pavlovevide...@gmail.comwrote:
On Mar 12, 8:11 pm, Justus Schwabedal <justus.schwabe...@gmx.de>
wrote:
What do you need it for anyway? I just read about it and I think it's
useless
in python.
Perl, like Python, has a separate compilation and run times. One day,
someone who was trying to use Perl for something asked, "You know,
wouldn't it be neat-o if you could execute some Perl code *before* you
compiled the script?" And so (since that's usually enough reason to
add something to Perl) was borne the BEGIN block.
I believe the official rationale was that they wanted to add some
magic variables that affected Perl's compilation and couldn't do it
without a magic block that executed at compile time.
Python solved a similar problem by introducing __future__ imports.
Carl Banks
And theres me thinking it was part of Perls AWK compatibility code.
- Paddy.
Alex a écrit :
(sni)
First of all thanks all for answering!
I have some environment check and setup in the beginning of the code.
I would like to move it to the end of the script.
Why ? (if I may ask...)
But I want it to
execute first, so the script will exit if the environment is not
configured properly.
If you want some code to execute first when the script/module is loaded,
then keep this code where it belongs : at the beginning of the script.
On Mar 13, 7:02 am, Bruno Desthuilliers <bruno.
42.desthuilli...@wtf.websiteburo.oops.comwrote:
Alex a écrit :
(sni)
First of all thanks all for answering!
I have some environment check and setup in the beginning of the code.
I would like to move it to the end of the script.
Why ? (if I may ask...)
But I want it to
execute first, so the script will exit if the environment is not
configured properly.
If you want some code to execute first when the script/module is loaded,
then keep this code where it belongs : at the beginning of the script.
I concur with Bruno's recommendation: stuff you want to do first
should come first in the script. Things like BEGIN blocks hurt
readability because you can't identify where execution begins without
reading the whole file.
Having said that, one thing that often happens in Python scripts is
that all the functions are defined first, then the script logic
follows. So you could put the meat of your script in a function, then
the "BEGIN" stuff after that functions:
def run_script():
#
# script contained in this long function
#
# Then test preconditions here...
if os.environ["HELLO"] != "WORLD":
sys.exit(2)
# Then call the run_script functions
run_script()
But having said THAT, I don't recommend you do that with
preconditions. If the script has a quick early exit scenario, you
really ought to put that near the top, before the function
definitions, to clearly show to a human reader what is necessary to
run the script.
Carl Banks
On Mar 13, 7:03 pm, Jonathan Gardner <jgard...@jonathangardner.net>
wrote:
On Mar 12, 6:37 pm, Carl Banks <pavlovevide...@gmail.comwrote:
<<Snip>>
>
And leave out the magical -p and -n. If you want to iterate through a
file, "for line in sys.stdin:".
Or better still:
import fileinput
for line in fileinput.input():
process(line)
- Paddy.
Paddy wrote:
On Mar 13, 7:03 pm, Jonathan Gardner <jgard...@jonathangardner.net>
wrote:
>On Mar 12, 6:37 pm, Carl Banks <pavlovevide...@gmail.comwrote:
<<Snip>>
>And leave out the magical -p and -n. If you want to iterate through a file, "for line in sys.stdin:".
Or better still:
import fileinput
for line in fileinput.input():
process(line)
I write maybe a dozen one-liners a day. It's not practical to do this
with Python, or at least it's not nearly as convenient as Perl. I'm
fine with the magic. Abusing the magic is another story; Perl language
features are meant to be used in particular contexts, and BEGIN blocks
are rarely if ever necessary in Perl modules.
In article <hM******************************@comcast.com>,
Jeff Schwab <je**@schwabcenter.comwrote:
> I write maybe a dozen one-liners a day. It's not practical to do this with Python, or at least it's not nearly as convenient as Perl.
That is a defensible position, but my take is that writing the one-liners
in Python is more convenient than remembering enough Perl to make writing
one-liners useful. Especially when the one-liners often start expanding.
--
Aahz (aa**@pythoncraft.com) <* http://www.pythoncraft.com/
"All problems in computer science can be solved by another level of
indirection." --Butler Lampson This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: mike420 |
last post by:
I think everyone who used Python will agree that its syntax is
the best thing going for it. It is very readable and easy
for everyone to learn. But, Python does not a have very good
macro...
|
by: Stephen C. Waterbury |
last post by:
This seems like it ought to work, according to the
description of reduce(), but it doesn't. Is this
a bug, or am I missing something?
Python 2.3.2 (#1, Oct 20 2003, 01:04:35)
on linux2
Type...
|
by: surfunbear |
last post by:
I've read some posts on Perl versus Python and studied a bit of my
Python book.
I'm a software engineer, familiar with C++ objected oriented
development, but have been using Perl because it is...
|
by: Xah Lee |
last post by:
Sort a List
Xah Lee, 200510
In this page, we show how to sort a list in Python & Perl and also
discuss some math of sort.
To sort a list in Python, use the “sort†method. For example:
...
|
by: Amol Vaidya |
last post by:
Hi. I am interested in learning a new programming language, and have been
debating whether to learn Ruby or Python. How do these compare and contrast
with one another, and what advantages does one...
|
by: Xah Lee |
last post by:
One-Liner Loop in Functional Style
Xah Lee, 200510
Today we show a example of a loop done as a one-liner of Functional
Programing style.
Suppose you have a list of file full paths of...
|
by: pmcgover |
last post by:
I enjoyed Paul Barry's September article in Linux Journal entitled,
"Web Reporting with MySQL, CSS and Perl". It provides a simple,
elegant way to use HTML to display database content without any...
|
by: mm |
last post by:
Is there a Perl to Python converter?
Or in general: a XY to Python converter?
Is see, that Python is much better then Perl anyway.
But for beginners, they whant to konw how is this done with...
|
by: js |
last post by:
HI guys,
How do you write Perl's
print a ... z, A ... Z, "\n"' in Python
In Python?
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
| |