How to edit a function in an interactive python session?
Rustom Mody
rustompmody at gmail.com
Thu Dec 21 00:06:07 EST 2017
On Thursday, December 21, 2017 at 7:12:24 AM UTC+5:30, Peng Yu wrote:
> Hi,
>
> R has the function edit() which allows the editing of the definition
> of a function. Does python have something similar so that users can
> edit python functions on the fly? Thanks.
>
> https://www.rdocumentation.org/packages/utils/versions/3.4.3/topics/edit
Dunno What exactly you are asking
And I suspect an “impedance mismatch” between the answers you are receiving and
what you seek.
Firstly on briefly looking at the R-docs that you quote I see that it does not
guarantee a faithful 'deparsing'… which I interpret as saying that R may
present to you a different (looking) function on (re) editing than what you typed
The real problem is that in the scale of religious dogmas python community
puts inter-OS portability/stability etc over and above development environment
This means that the tutorial is woefully inadequate (mostly by omission) in
terms of recommending a suitable dev environment.
And almost suggests that the basic interactive python shell is enough for
writing/trying out python code.
This is patently false
An experienced programmer either:
- Writes scripts (or GUI programs or web-apps or ...) using a full-featured editor like vim
Or
- Uses a dev-environment — IDLE, emacs, pycharm, pydev, jupyter, org-babel…
probably a dozen reasonable choices and hundreds of less reasonable ones
In either of these cases the question that you ask does not arise because the
code you are working on is always there "in another window"
- one click away from being tried out
- one click away from being edited (in its actual and not "deparsed" form)
<myself>
I tend to use emacs
My students suffer me and my habits
As an editor its really clunky obsolete and asinine
But its not an editor; its an OS and in that sphere there is nothing else for competition
However I would not make this recommendation for emacs over the net
[Learning a dev-environment is like learning a musical instrument : not
convenient over the net]
</myself>
To a beginner I would recommend IDLE by default unless there is significant data
pushing another choice
And if you try that you will see your question becomes automatically answered
(or irrelevant)
More information about the Python-list
mailing list