Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #98534

Re: Using tuple as parameter to a function

From Cecil Westerhof <Cecil@decebal.nl>
Newsgroups comp.lang.python
Subject Re: Using tuple as parameter to a function
Date 2015-11-09 16:01 +0100
Organization Decebal Computing
Message-ID <87egfz5i9x.fsf@Equus.decebal.nl> (permalink)
References <87io5b5m1b.fsf@Equus.decebal.nl> <mailman.175.1447077487.16136.python-list@python.org>

Show all headers | View raw


On Monday  9 Nov 2015 14:58 CET, Chris Angelico wrote:

> On Tue, Nov 10, 2015 at 12:40 AM, Cecil Westerhof <Cecil@decebal.nl> wrote:
>> I was thinking about something like:
>> values = (( 1, 100), ( 2, 100), ( 5, 100),
>> 10, 100), (20, 100), (40, 100))
>> for value in values:
>> do_stress_test('sqlite',   ???)
>> do_stress_test('postgres', ???)
>>
>> Is this possible? If so: what do I put at the place of the '???'?
>>
>> I could change the second and third parameter to a tuple as the
>> second parameter, but I prefer three parameters if that would be
>> possible.
>
> Easy! Just unpack the tuple. Two options:
>
> # Unpack in the loop
> for count, size in values:
> do_stress_test('sqlite', count, size)
> do_stress_test('postgres', count, size)
>
> # Unpack in the function call
> for value in values:
> do_stress_test('sqlite', *value)
> do_stress_test('postgres', *value)
>
> Either will work. For what you're doing here, I'd be inclined to the
> first option, so you can give the values appropriate names (I'm
> completely guessing here that they might be some sort of iteration
> count and pool size; use names that make sense to your program); the
> other option looks uglier in this particular instance, though it's a
> more direct answer to your question.
>
> This is one of Python's best-kept secrets, I think. It's not easy to
> stumble on it, but it's so handy once you know about it.

I remembered the second one, but did not know how it was done. That
was why I asked about it. But the first option is even better. I now
use:
    values = ((  1, 100), (  2, 100), (  5, 100),
              ( 10, 100), ( 20, 100), ( 40, 100),
              #( 80, 100), (160, 100),
              #(160, 200), (160, 400), (160, 800),
          )
    for no_of_threads, no_of_records in values:
        do_stress_test('postgres', no_of_threads, no_of_records)
        do_stress_test('sqlite',   no_of_threads, no_of_records)

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Using tuple as parameter to a function Cecil Westerhof <Cecil@decebal.nl> - 2015-11-09 14:40 +0100
  Re: Using tuple as parameter to a function Chris Angelico <rosuav@gmail.com> - 2015-11-10 00:58 +1100
    Re: Using tuple as parameter to a function marco.nawijn@colosso.nl - 2015-11-09 06:57 -0800
    Re: Using tuple as parameter to a function Cecil Westerhof <Cecil@decebal.nl> - 2015-11-09 16:01 +0100
      Re: Using tuple as parameter to a function Chris Angelico <rosuav@gmail.com> - 2015-11-10 02:24 +1100
        Re: Using tuple as parameter to a function Cecil Westerhof <Cecil@decebal.nl> - 2015-11-09 18:54 +0100

csiph-web