Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #43303
| Path | csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <spaxe85@gmail.com> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.023 |
| X-Spam-Evidence | '*H*': 0.95; '*S*': 0.00; 'python,': 0.02; 'operator': 0.03; 'cc:addr:python-list': 0.11; 'before.': 0.16; 'debated': 0.16; 'from:addr:xavierho.com': 0.16; 'from:name:xavier ho': 0.16; 'notation.': 0.16; 'readability': 0.16; 'sender:addr:spaxe85': 0.16; 'subject:API': 0.16; 'subject:Object': 0.16; 'subject:oriented': 0.16; 'component': 0.16; 'sender:addr:gmail.com': 0.17; '>>>': 0.22; 'cc:addr:python.org': 0.22; 'print': 0.22; '>>>': 0.24; 'forms.': 0.24; 'mathematical': 0.24; 'simpler': 0.24; 'cheers,': 0.24; 'cc:2**0': 0.24; "i've": 0.25; 'class.': 0.26; 'header:In- Reply-To:1': 0.27; 'function': 0.29; "doesn't": 0.30; 'said,': 0.30; 'message-id:@mail.gmail.com': 0.30; 'skip:( 20': 0.30; 'idea,': 0.31; 'there.': 0.32; 'probably': 0.32; 'agree': 0.35; 'something': 0.35; 'definition': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; 'c++': 0.36; 'done': 0.36; 'two': 0.37; 'anything': 0.39; 'bad': 0.39; 'most': 0.60; 'matter': 0.61; 'skip:6 10': 0.63; 'more': 0.64; 'love': 0.65; 'subject:. ': 0.67; 'between': 0.67; 'header:Reply- To:1': 0.67; 'believe': 0.68; 'products': 0.71; 'reply-to:no real name:2**0': 0.71; 'max,': 0.84; 'overloading': 0.84; 'reply- to:addr:contact': 0.84; 'choice.': 0.93 |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:reply-to:sender:in-reply-to:references:from :date:x-google-sender-auth:message-id:subject:to:cc:content-type; bh=RMoB8EHzD3VI7ZQ8/9pLUeGjI4/v7AL5V7SDSFUxkeY=; b=yGCYT/TfYkKz+QeGncUYeziy4+N8MLzm5b+89Dv9CutGTucUuUneSp8GMgubBZhojc i6qpe9D4epQrjfhwGVUufXyjwIQcO95gQuN5WYrckRp7XNDP/stlXLyUlteu6AiyI2RY ZHbIAbfZdgmYPZPGcJvJyrvF6xN6XxG9Es02hOm018LKuDTiQosEj2/iMuHfswn1jsQs m14uwDwzy43juy1tsDZR6KBcvLENG91qLcS71Tu8ChTaOs4dL/IMWskGVE+jCov106ff F5c/9+I2oaweI/MGkS393NEXrbzCJl7ShsCNU6kRHPvaOEVebPmL9NRbQKoH2AfUYflM kbPg== |
| X-Received | by 10.58.29.101 with SMTP id j5mr3296465veh.26.1365636448381; Wed, 10 Apr 2013 16:27:28 -0700 (PDT) |
| MIME-Version | 1.0 |
| Sender | spaxe85@gmail.com |
| In-Reply-To | <CA923438-A718-46D4-9901-5043EACD7A22@york.ac.uk> |
| References | <CA923438-A718-46D4-9901-5043EACD7A22@york.ac.uk> |
| From | Xavier Ho <contact@xavierho.com> |
| Date | Thu, 11 Apr 2013 09:27:08 +1000 |
| X-Google-Sender-Auth | 1ALxYj0U4bsC97vsjvcH-Ut0o80 |
| Subject | Re: Functional vs. Object oriented API |
| To | Max Bucknell <mpwb500@york.ac.uk> |
| Content-Type | multipart/alternative; boundary=047d7b67656266239304da0a03ee |
| Cc | "python-list@python.org" <python-list@python.org> |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.15 |
| Precedence | list |
| Reply-To | contact@xavierho.com |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.431.1365636451.3114.python-list@python.org> (permalink) |
| Lines | 74 |
| NNTP-Posting-Host | 2001:888:2000:d::a6 |
| X-Trace | 1365636451 news.xs4all.nl 2632 [2001:888:2000:d::a6]:34016 |
| X-Complaints-To | abuse@xs4all.nl |
| Xref | csiph.com comp.lang.python:43303 |
Show key headers only | View raw
[Multipart message — attachments visible in raw view] - view raw
Hi Max,
In Python, we prefer readability over anything else. The simpler you can
write it, the better it can be understood.
That said, I've never considered using (i, j, k) as a vector component
before. I've always done something akin to:
>>> vector = Vector(2, 4, 6)
>>> print (vector.normalize().y)
However, if you use the mathematical definition of a vector, with standard
symbols:
v = x*i + y*j + z*k
Then I believe vector.j is a much choice. As long as your documentation
states it's read-only, I think most mathematicians will love that notation.
.
As far as dot products go, there isn't really a big difference between the
two forms you have there. Both are equally as readable.
When C++ was invented people had already debated about the two forms.
There isn't a general consensus on this debate, but most would probably
agree that overloading the * operator of a vector to do dot product is a
bad idea, since some people want cross product, or per-component
multiplication. At the end of the day, dot() or dot_product() is more
readable, and it doesn't matter if you have it as a function in or outside
of a vector's class.
Cheers,
Xav
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: Functional vs. Object oriented API Xavier Ho <contact@xavierho.com> - 2013-04-11 09:27 +1000
csiph-web