Passing objects to a function

T

Thomas Philips

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
 
J

John Roth

Thomas Philips said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,197
Messages
2,571,040
Members
47,634
Latest member
RonnyBoelk

Latest Threads

Top