On 2020-07-13 17:21:40 +1200, dn via Python-list wrote: > On 12/07/20 10:10 PM, Barry Scott wrote: > > I'd expect to see something like this: > > > > def mail_label( person, address ): > > first_name = person.first_name > > # or if you want a function interface > > first_line_of_address = address.get_first_line() > > Does this idea move whole objects across the interface? (see earlier in the > thread)
Assigning an object in Python only copies a pointer (and may adjust some
house-keeping info, like a reference count). So it doesn't matter
whether the object has 5 fields or 50. The function will only access
those it knows about and ignore the rest.
One might argue that mail_label should be a method of the person object
because it depends on the person (e.g., depending on the ethnicity of
the person the name might be written "first_name last_name" or
"last_name firstname"). OTOH a person may have many addresses (and an
address shared by many people), so a function which combines a person
and address (which therefore can't be a method of either person or
address) may be better.
Maybe that should be treated as a model-view relationship: You have two
models (person and address) and a view (which combines some aspects of
both while ignoring others).
hp
--
_ | Peter J. Holzer | Story must make more sense than reality.
|_|_) | |
| | | [email protected] | -- Charles Stross, "Creative writing
__/ | http://www.hjp.at/ | challenge!"
signature.asc
Description: PGP signature
-- https://mail.python.org/mailman/listinfo/python-list
