Passing objects to a function

John Roth newsgroups at jhrothjr.com
Sun May 9 18:38:48 EDT 2004


"Thomas Philips" <tkpmep at hotmail.com> wrote in message
news:b4a8ffb6.0405091315.5ecadf92 at posting.google.com...
> I'd like to write the parameter list of a method or function in a way
> that makes the class of each parameter crystal clear, thus decreasing
> the likelihood of a programming error.
>
> I am programming a blackjack game with Card and Hand objects, and
> these in turn have methods that require Card objects, Hand objects or
> both. For example, the class Hand has a method BlackJackValue that
> computes the value of a hand using the rules of blackjack. I'd like to
> write the method (approximately) in the form
>
> def BlackJackValue(hand=Hand):
>    adfsadf
>    adfasdf
>    .
>    .
>    .
>
> It takes only one look at this method's definition to realize that it
> requires an object of type Hand. Unfortunately, my mangled syntax
> describes the way in which default parameters are passed, and does not
> allow me to document the class of each parameter. What's the right way
> to achieve my goal?
>
> Sincerely
>
> Thomas Philips

Since Python is not a language that supports manifest typing
(that is, type declarations) there is no "right" way to do what
you want. When I want to do something like that, I may go
Smalltalkish and say something like:

def BlackJackValue(aHand):

or I may go a bit more conventional and say something more
like:

def BlackJackValueOfHand(theHand):

In either case, you can always write a parameter name so that
it tells you something. Beyond that, it's simply a matter of setting
a convention and sticking to it rigorously.

John Roth





More information about the Python-list mailing list