[Tutor] Learning python as a thing to do
Alan Gauld
alan.gauld at freenet.co.uk
Mon Feb 28 01:53:26 CET 2005
> I am a Rubyist, but I've decided to learn Python
Welcome, could be interesting. I'm a pythonista and
have learned Ruby but not used it for anything significant
yet.
> At any rate, so far Python seems to be a very good
> language. Not a great language, but still very good.
There is only one great language: Lisp :-)
> So far, some things I dont care for...
> immutable strings
> no case statement
Yes, most folks find those concepts pretty strange.
Personally I don't miss case statements (see a recent thread)
I usually find Pythons stricture means I rethink the design
and usually manage to avoid the need (and potential bugs that
are inherent in case structures...) but mutable strings would
be nice, although potentially dangerous for dictionary keys.
> lack of internal iterators
NOt sure what you mean by this one, can you expand?
> The mixing of functions and methods
You mean the fact that Python doesn't insist on everything
being an object? That simply reflects that Python can be
used in several difreent paradigms. Functional Programming
is the biggest "modern" alternative to OOP and support for
functions as first class objects supports that style. Ruby
can fake it with its top level "invisible" object, but Python
just makes that style a natural part of the language.
OTOH if you mean the inconsistencies in the use of methods
versus functions in the base language (eg files have a close
method but an open function) then I agree and Python is slowly
removing those with each release. The biggest step being
the introduction of strings as objects/methods and another
step forward being the new-style classes in v2.x
This is one area where Matz learned lessons from Perl/Python
when he invented Ruby - the advantage of going second (or
third or fourth...)
> Question(s):
> Are there any good books/documents that actually
> examine the ruby way vs python way? (by someone that
> knows both languages)
NOt that I know of.
> The other day I saw a post from a gentleman trying to
> do a basic prompt and add type of calculator.
> He wanted to assign the +, or * operator to a variable
> to use, but I believe he was told you have to use the
> literal +, or *.
Thats possible using the operator module.
> Are these operators constanst in Python?
Not really, in that you can override them
(__add__, __Sub__, __mul__ etc) and the operator module
gives access to the common ones in a generic kind of way.
> If so, is there not a way to send that constant to
> act apon another variable or variables that refer to
> numbers?
I didn't see the post but it sounds as if the poster should
have been able to do what [s]he wanted.
> In ruby, you can rerence the * operator
> operator = :*
> num1 = 4
> num2 = 6
> num1.send(operator,num2)
In Python:
import operator
num1 = 4
num2 = 6
operator.mul(num1,num2)
Alan G.
> which returns 24
>
> Have a nice day :-)
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - now with 250MB free storage. Learn more.
> http://info.mail.yahoo.com/mail_250
>
>
More information about the Tutor
mailing list