Testing for presence of arguments
Madhusudan Singh
spammers-go-here at spam.invalid
Wed Aug 17 12:08:22 EDT 2005
Dan Sommers wrote:
> On Wed, 17 Aug 2005 11:13:03 -0400,
> Madhusudan Singh <spammers-go-here at spam.invalid> wrote:
>
>> I know how to set optional arguments in the function definition. Is
>> there an intrinsic function that determines if a certain argument was
>> actually passed ? Like the fortran 95 present() logical intrinsic ?
>
> def f(**kw):
> if kw.has_key('required_argument'):
> print "require_argument was present"
> else:
> print "require_argument was not present"
>
>> My required functionality depends on whether a certain argument is
>> specified at all. (Setting default values is *not* good enough.).
>
> You can very nearly achieve this with carefully planned default
> arguments. Put this into a module:
>
> class _SemiPrivateClass:
> pass
>
> def f(required_argument=_SemiPrivateClass):
> if required_argument == _SemiPrivateClass:
> print "required_argument was probably not present"
> else:
> print "required_argument was present"
>
> It's not impossible fool f, but an external module has to try very hard
> to do so.
>
> (All code untested.)
>
> Regards,
> Dan
>
Thanks for the suggestion, but seems needlessly complicated for something
very simple.
More information about the Python-list
mailing list