Question on keyword arguments

Tim Chase python.list at tim.thechases.com
Thu Feb 18 09:58:03 EST 2016


On 2016-02-18 09:00, grsmith at atlanticbb.net wrote:
> Would this be the correct way to return
> a list as a default result.
> 
> Also, would the list be the preferable result (to a python
> programmer) ?
> 
> def test(command, return_type='LIST'):
>     """ Go to database and return data"""
>     if return_type == 'LIST':
>         result = ['ONE', 'TWO', 'THREE']
>     else:
>         result = r'0xfeONE\0exfeTWO\0xfeTHREE'

[I presume the "\0exfe" should just be "\0xfe" like the other two]

>     return result
> 
> if __name__ == '__main__':
>     print(test('cmd'))
>     print(test('cmd', 'LIST'))
>     print(test('cmd', None))
>     print(test('cmd', 'string'))

The function should return "the most obvious way to do it".  In this
case, it appears that you should just always return a list.  If you
want to format it in your crazy-other-result format, create a utility
function to do that:

  def test(command):
    return ['ONE', 'TWO', 'THREE']

  def grsmithify(lst):
    return ''.join("\0xfe%s" % s for s in lst)

  print(test('cmd'))
  print(grsmithify(test('cmd')))

-tkc





More information about the Python-list mailing list